 10.txt             n       /&                -.   h TEXT????                                    ?  Hi everybody!

After all the 0.x's, here now the v1.0 of the UnOfficial Duke Nukem 3D Editing
FAQ!

Improvements to be found in here:

* First version of The Museum now included, demonstrating 
the techniques explained in here.

* Lots of errors removed.

* More thoughts on level and DukeMatch map design. 

* Rewrote the section on hinged doors - should be much 
easier to understand now.

* Several more how-tos.

* Added to the 'Tips and tricks' section. 

* Lots more common questions and bugs added. 

* Started a BUILD wishlist.

* Added to Chapter 11 (Reference lists). 

* Info on the MAP design contest.

All chapters which changed since the last release of the FAQ are marked with '*'
in the table of contents. 

Planned improvements:

* Explain _all_ tiles and sounds in the reference section. 

* Add more tips on level design.

* Add more info on the utilities for Duke3D (like 
RTSMAKER.EXE).

* Write chapter 8 (Programming the .CON files). 

* Improve The Museum.

* As always, more how-tos!

I've received quite a lot of feedback - please keep it up! I'm also very
interested in any ftp or www sites as well as any maps. 

Here some questions for you:

* Would it be a Terrible Thing if I kept posting both parts 
of the FAQ? Since part II is The Museum, it's UUENCODED and thus a binary - it
might be bad form posting this on a discussion group.
However, I don't have access to alt.games.duke3d.editing, and neither do a lot of
other people...

* Anybody who can send me info, tips and tricks to be 
included here? All ideas, tricks, etc which make it into the FAQ will, of course,
be fully attributed. 

* Anybody started some serious .CON file hacking or has any 
other CON-info I could put into here?

* I'd especially appreciate it if anybody could point out 
errors in this FAQ.

* Anybody who can think of questions which should be 
included in this FAQ?

* Lots of open questions in the FAQ - the most pressing ones 
IMO are marked '##'.

The FAQ will be posted monthly (or bi-weekly, if you prefere) to
comp.sys.ibm.pc.games.action and alt.games.duke3d. 

Ciao,
Klaus

--- cut here ---

.-----..-.	.-..-.	.--. .--. .--. _	_	.-.
`-. .-': :	: :: :	: ,. :: .-': .-':_;	:_;	: :
: : : `-. .--. : :: :,-.,-.: :: :: `; : `; .-. .--. .-. .--. : : : : : .. :' '_.'
: :; :: ,. :: :; :: : : : : :' ..': :' .; ; : :_ :_; :_;:_;`.__.'
`.__.':_;:_;`.__.':_; :_; :_;`.__.':_;`.__,_;`.__;
________	__	_______	__
\______ \ __ __| | __ ____ \	\ __ __| | __ ____ _____
| | \| | \ |/ // __ \ / | \| | \ |/ // __ \ /	\
| ` \ | / <\ ___/ / | \ | / <\ ___/| Y Y \ /_______ /____/|__|_ \\___ > \____|__
/____/|__|_ \\___ >__|_| / 
\/	\/ \/	\/	\/ \/	\/
________ ________
\_____ \\______ \
_(__ < | | \
/	\| ` \
/________/_________/
.--. .-. _ .-. _	.---. .--. .--.
: .--' : ::_;.' `.:_;	: .--': .; :: ,. :
: `; .-' :.-.`. .'.-.,-.,-. .--. : `; : :: :: : : :__ ' .; :: : : : : :: ,. :' .;
: : : : :: :: :;_: `.__.'`.__.':_; :_; :_;:_;:_;`._. ; :_; :_;:_;`._:_; 
.-. :
`._.'

Release v1.0
Last Updated: 10th June 1996

Written by
Klaus Breuer (sz0759@rzmail.uni-erlangen.de) 

## Anybody who can do a nicer ASCII logo? 



Contents



Chapter 1 Happy lawyer dept.
1.1 Disclaimer
1.2 Trademark information
1.3 Copyright notice

Chapter 2 Introduction
2.1 *A word from Klaus Breuer*
2.2 *About the "UnOfficial" DUKE NUKEM 3D EDITING 
FAQ*
2.3 *Getting the "UnOfficial" DN3DE FAQ* 2.4 Adding to the FAQ
2.5 *The DN3D EDITING mailing list*
2.6 The DN3D EDITING ftp site
2.7 *WWW sites*
2.8 *IRC*
2.9 *Acknowledgments*
2.10 Accurate information
2.11 Help with new levels

Chapter 3 [Preliminary information]
3.1 [Intended audience for this chapter] 3.2 [The basics]
3.2.1 [Differences between the Build and DOOM 
engines]
3.2.2 *Useful cheats for testing levels* 3.2.3 [What a map consists of]
3.2.3.1 [Sectors]
3.2.3.2 [Walls]
3.2.3.3 [Textures]
3.2.3.4 *Sprites*

Chapter 4 [Planning and designing a level] 
4.1 *Installing BUILD*
4.2 *Before starting*
4.3 (Pros and cons of using real-world maps) 
4.3.1 (Advantages)
4.3.2 *Disadvantages*
4.4 (Using DOOM maps)
4.5 *Designing the level*
4.5.1 *Level types*
4.5.1.1 *Single player*
4.5.1.2 *Co-op*
4.5.1.3 *DukeMatch*
4.5.1.4 *My room/flat/dorm/house*
4.5.2 *Choosing a level type*
4.5.3 *Random tips and thoughts*
4.6 *DukeMatch level design*
4.6.1 *Monster placement*
4.6.2 *Weapon placement*
4.6.2.1 *Power weapons*
4.6.2.2 *Starting-point weapons*
4.6.3 *Ammo placement*
4.6.3.1 *Amount and location*
4.6.3.2 *Ammo Quantity Types*
4.6.4 *Health placement*
4.6.5 *Architectures*
4.6.5.1 *Large, open areas*
4.6.5.2 *Long, wide passages*
4.6.5.3 *Nooks 'n crannies*
4.6.5.4 *Balconies, bridges and towers
4.6.5.5 *Fortresses*
4.6.5.6 *Obstacles*
4.6.5.7 *Sniper spots*
4.7 *Once your level is done*

Chapter 5 (A walkthrough to creating a simple level) 
5.1 (Planning)
5.2 (Getting ready)
5.3 (Creating a new map)
5.4 (The 2D screen)
5.4.1 (Map)
5.4.2 (Message window)
5.4.3 (Data window)
5.4.4 (Info window)
5.5 (Moving about)
5.6 (Creating a room)
5.7 (3D mode)
5.8 (Raising the roof)
5.9 (Textures)
5.9.1 (The floor)
5.9.2 (The roof)
5.9.3 (Flying about)
5.9.4 (The walls)
5.10 (Building the house)
5.10.1 (The house sector)
5.10.2 (Fixing the house sector)
5.10.2.1 (The carpet floor)
5.10.2.2 (Nice walls)
5.10.2.3 (Finally, the roof)
5.10.3 (Saving your work)
5.10.4 (Building a doorway)
5.10.5 (Adding a window)
5.10.6 (Glass)
5.10.7 (The sloped roof)
5.11 (Trying it out)
5.12 (Decorations)
5.12.1 (The flower pot)
5.12.2 (The picture)
5.12.3 (A hanging lamp)
5.12.4 (The burning barrel)
5.13 (The enemy appears)
5.14 (The other players)
5.15 (Taking it from here)

Chapter 6 (The BUILD Editor)
6.1 (2D Mode)
6.1.1 (The Screen)
6.1.1.1 (The map)
6.1.1.2 (The Message window)
6.1.1.3 (The Data window)
6.1.1.4 (The Info window)
6.1.2 (The mouse)
6.1.2.1 (Move)
6.1.2.2 (Left button)
6.1.2.3 (Right button)
6.1.3 (The keyboard)
6.1.3.1 (Esc)
6.1.3.2 (Cursor keys)
6.1.3.3 (NumIns and NumDel)
6.1.3.4 (Spacebar)
6.1.3.5 (NumEnter)
6.1.3.6 *RightShift*
6.1.3.7 (Control-RightShift)
6.1.3.8 (RightAlt)
6.1.3.9 (Ins)
6.1.3.10 (Del)
6.1.3.11 *RightControl-Del*
6.1.3.12 (A and Z)
6.1.3.13 (G)
6.1.3.14 (L)
6.1.3.15 (J)
6.1.3.16 (Alt-S)
6.1.3.17 (S)
6.1.3.18 (B)
6.1.3.19 *C*
6.1.3.20 (T)
6.1.3.21 (H)
6.1.3.22 (Alt-T)
6.1.3.23 (Alt-H)
6.1.3.24 (E)
6.1.3.25 (< and >)
6.1.3.26 (Shift-< and Shift->)
6.1.3.27 ([ ])
6.1.3.28 ('-M)
6.1.3.29 ('-3)
6.1.3.30 (F1)
6.1.3.31 (F2)
6.1.3.32 (F3)
6.1.3.33 (F4)
6.1.3.34 (F5)
6.1.3.35 (F6)
6.1.3.36 (F7)
6.1.3.37 *F8*
6.1.3.38 (F9)
6.1.3.39 (F10)
6.1.3.40 (F11)
6.1.3.41 (F12)
6.1.3.42 (TAB)
6.1.3.43 (Alt-TAB)
6.1.3.44 (ScrollLock)
6.1.3.45 (Ctrl-T)
6.1.3.46 (Enter)
6.2 (3D Mode)
6.2.1 (The screen)
6.2.2 (The mouse)
6.2.2.1 (Move)
6.2.2.2 (Left button)
6.2.2.3 *Right button*
6.2.3 (The keyboard)
6.2.3.1 (Cursor keys)
6.2.3.2 (CapsLock)
6.2.3.3 (PgUp and PgDn)
6.2.3.4 (V)
6.2.3.5 (Alt-V)
6.2.3.6 (NumCursor keys)
6.2.3.7 (Shift-NumCursor keys)
6.2.3.8 (/)
6.2.3.9 (.)
6.2.3.10 (F)
6.2.3.11 (Alt-F)
6.2.3.12 (P)
6.2.3.13 (G)
6.2.3.14 (E)
6.2.3.15 (R)
6.2.3.16 (O)
6.2.3.17 (B)
6.2.3.18 (T)
6.2.3.19 (M)
6.2.3.20 (Shift-M)
6.2.3.21 (1)
6.2.3.22 (2)
6.2.3.23 (H)
6.2.3.24 (TAB)
6.2.3.25 (Enter)
6.2.3.26 (Ctrl-Enter)
6.2.3.27 (Shift-Enter)
6.2.3.28 (Ctrl-Shift-Enter)
6.2.3.29 ('-ENTER)
6.2.3.30 ('-R)
6.2.3.31 ('-D)
6.2.3.32 ('-W)
6.2.3.33 ('-G)
6.2.3.34 ('-Y)
6.2.3.35 ('-T)
6.2.3.36 (-H)
6.2.3.37 ('-S)
6.2.3.38 *'-V*
6.2.3.39 ('-C)
6.2.3.40 ('-Del)
6.2.3.41 (F1)
6.2.3.42 (F2)
6.2.3.43 (F3)
6.2.3.44 (F4)
6.2.3.45 (F5)
6.2.3.46 (F6)
6.2.3.47 (F7)
6.2.3.48 (F8)
6.2.3.49 (F9)
6.2.3.50 (F10)
6.2.3.51 *F11*
6.2.3.52 (F12)
6.3 Typical mistakes to avoid
6.3.1 Crossed lines
6.3.2 Overlaying lines
6.3.3 *Hall Of Mirrors*
6.3.4 *Door side tracks*
6.3.5 *Unaligned Textures*
6.3.6 *Missing Player Starts*

Chapter 7 [How to...]
7.1 [Extracting the original maps]
7.2 [Abbreviations]
7.3 *Player starting points*
7.3.1 *Notes*
7.4 [Glass panes]
7.5 (Doorways)
7.5.0.1 [Notes]
7.6 [Windows]
7.7 *Air ducts*
7.7.1 *Notes*
7.8 [Angled surfaces]
7.8.1 *Notes*
7.9 Secret places
7.10 [Multiplayer sprites]
7.11 [Level-end button]
7.11.1 [Notes]
7.12 [Level-end sector]
7.13 Cameras
7.13.1 *Setup*
7.13.2 *Notes*
7.14 *Demo cameras*
7.14.1 *Setup*
7.15 Blastable walls (user control)
7.15.1 Setup
7.15.2 [Notes]
7.15.3 (Tips)
7.16 Blastable walls (triggered)
7.16.1 Setup
7.16.2 Notes
7.17 [Conveyor Belts]
7.17.1 [Setup]
7.17.2 (Notes)
7.18 [Mirrors]
7.18.1 *Notes*
7.19 *Light switches*
7.19.1 Setup
7.19.2
7.20 (Permanently rotating sector (gears)) 
7.20.1 (Setup)
7.20.2 (Notes)
7.21 Doors
7.21.1 *Standard hinged*
7.21.1.1 *Notes*
7.21.2 [DOOM-type door, remote control]
7.21.2.1 [Setup]
7.21.2.2 [Notes]
7.21.3 [DOOM-type door, local control]
7.21.4 *Sliding sideways*
7.21.4.1 *Notes*
7.21.5 [Star Trek door]
7.21.5.1 [Setup]
7.21.5.2 (Notes)
7.21.6 [Four-way door]
7.21.6.1 [Notes]
7.21.7 [Teeth doors]
7.21.8 [Auto-closing doors]
7.22 Shrinking sector (remote control)
7.22.1 [Setup]
7.23 *Automatic cannon*
7.23.1 *Setup*
7.23.2 *Notes*
7.24 *Lethal sectors*
7.25 *Earthquakes*
7.25.1 *Setup*
7.25.2 *Notes*
7.26 [Elevators]
7.26.1 [Setup]
7.26.2 *Notes*
7.27 *Remote-controlled Elevators*
7.27.1 *Setup*
7.28 Teleporters
7.28.1 Setup
7.28.2 *Notes*
7.29 Swimming pools
7.29.1 Setup
7.29.2 *Notes*
7.29.3 Tips
7.30 *The Grapplers*
7.30.1 *Setup*
7.30.2 *Tips*
7.31 *Overlapping sectors*
7.31.1 *Notes*
7.32 (Hiding switches)
7.33 (Bridges and Shelves)
7.33.1 *Notes*
7.34 *Minibosses*
7.34.1 *Notes*
7.35 {Morphing ramps}
7.36 *Vehicles*
7.36.1 Setup
7.36.2 *Notes*
7.37 [Attacking Vehicles]
7.37.1 *Notes*
7.38 *Two-way Vehicles*
7.38.1 *Setup*
7.38.2 *Notes*
7.39 (Water waves)
7.39.1 (Setup)
7.39.2 (Notes)
7.40 (Engine piston)
7.40.1 (Setup)
7.40.2 (Notes)
7.41 (Edge walls)
7.41.1 *Setup*
7.42 (Code switches)
7.42.1 (Setup)
7.42.2 (Notes)
7.43 (The pool table)
7.43.1 (Setup)
7.43.2 (Notes)
7.43.3 *Once-only sound effects*
7.43.3.1 *Setup*
7.44 (Tips and tricks: New and interesting 
effects)
7.44.1 *Ghosts*
7.44.2 *Falling to your death?*
7.44.3 *Malfunctioning doors*
7.44.4 *The shrinking player*

Chapter 8 {Programming the .CON files}

Chapter 9 (Utilities and add-ons)
9.1 (Editing utilities)
9.1.1 (BUILD)
9.1.2 (EditArt)
9.1.2.1 (Changing graphics)
9.1.2.2 *Adding new graphics*
9.1.2.3 (Using DOOM I graphics)
9.1.2.4 *General notes*
9.1.3 (Wad2Map utilities)
9.1.3.1 (WAD2ART)
9.1.3.2 (WAD2MAP)
9.2 {Data files}
9.2.1 {Graphics}
9.2.2 {VOC files (Sounds)}
9.2.3 {MID files (Music)}
9.2.4 {.CON hacks}
9.2.5 {Demos (Recordings)}
9.2.6 *New levels*
9.2.6.1 *MAP Authoring Template v0.1*
9.3 (Future add-ons)
9.3.1 (Add-on software wish list)
9.3.2 Add-on software in the making

Chapter 10 (Troubleshooting)
10.1 (Common questions)
10.1.1 (My 3D mode messes up)
10.1.2 (I'm using Windoze/Win95, and...) 10.1.3 (I can't select sprites)
10.1.4 *How do I view the original maps?* 10.1.5 *How do I use the new .VOC and
.MIDs?* 10.1.6 (How do I show the wall data?)
10.1.7 *I can't save the changes in BSetup* 10.1.8 *The game ends with 'MAP
E1L9.MAP not 
found!'*
10.1.9 *How do I set the par time?*
10.2 (Bugs in the game)
10.2.1 *Holodukes*
10.2.1.1 *Bug*
10.2.1.2 *Workaround*
10.2.2 *The shrinker*
10.2.2.1 *Bug*
10.2.2.2 *Workaround*
10.2.3 *Endless ammo*
10.2.3.1 *Bug*
10.2.3.2 *Workaround*
10.2.4 Remote switch triggering
10.2.4.1 [Bug]
10.2.4.2 [Workaround]
10.2.5 *Underwater toilets*
10.2.5.1 *Bug*
10.2.5.2 *Workaround*
10.2.6 *Explosions*
10.2.6.1 *Bug*
10.2.6.2 *Workaround*
10.2.7 (Crash on shattering objects)
10.2.7.1 (Bug)
10.2.7.2 (Workaround)
10.2.8 *Breaking unbreakable glass*
10.2.8.1 *Bug*
10.2.8.2 *Workaround*
10.2.9 *Trip mines*
10.2.9.1 *Bug*
10.2.9.2 *Workaround*
10.2.10 (Phantom bullet-holes)
10.2.10.1 (Bug)
10.2.10.2 (Workaround)
10.3 (Bugs in BUILD)
10.3.1 Selecting long lines
10.3.1.1 Bug
10.3.1.2 Workaround
10.3.2 (Splitting a sector)
10.3.2.1 (Bug)
10.3.2.2 (Workaround)
10.3.3 (Selecting sprites)
10.3.3.1 (Bug)
10.3.3.2 (Workaround)
10.3.4 [Autoaligning textures]
10.3.4.1 [Bug]
10.3.4.2 [Workaround]
10.3.5 (Displaying memory info)
10.3.5.1 (Bug)
10.3.5.2 (Workaround)
10.3.6 (Function keys in 3D mode)
10.3.6.1 (Bug)
10.3.6.2 (Workaround)
10.3.7 *Deleting sectors*
10.3.7.1 *Bug*
10.3.7.2 *Workaround*
10.3.8 *Copying sectors*
10.3.8.1 *Bug*
10.3.8.2 *Workaround*
10.3.9 *FPU reliance*
10.3.9.1 *Bug*
10.3.9.2 *Workaround*
10.4 *BUILD wishlist*

Chapter 11 [Reference lists]
11.1 *List of original levels*
11.1.1 L.A. Meltdown
11.1.2 Lunar Apocalypse
11.1.3 Shrapnel City
11.2 (List of tiles)
11.2.1 (Control tiles)
11.2.2 (Weapon sprites)
11.2.3 (Ammo sprites)
11.2.4 (Item sprites)
11.2.5 (Special sprites)
11.2.6 (Parallax (sky) textures)
11.2.7 *Lights*
11.2.8 (Switches)
11.2.9 (Doors)
11.2.9.1 *Technical doors*
11.2.9.2 *Normal*
11.2.10 *Floors*
11.2.11 *Walls*
11.2.11.1 *Machines*
11.2.11.2 *Space ship hull*
11.2.11.3 *Modern*
11.2.11.4 *Metal*
11.2.11.5 *Concrete*
11.2.11.6 *Stone*
11.2.11.7 *Rock*
11.2.12 *Technical-looking items*
11.2.13 *Often-used special textures*
11.2.14 (Diverse)
11.2.15 *Unclassified (please assist!)*
11.3 *List of Palettes*
11.4 {List of Sector Effectors}
11.5 {List of sounds}
11.6 *Dimensions*
11.6.1 (Units)
11.6.2 (The map)
11.6.2.1 (Walking about)
11.6.2.2 (Weapons)

Chapter 12 Miscellaneous
12.1 *MAP design contest*
12.2 [Conclusion]
12.3 (Revision history)



Chapter 1

Happy lawyer dept.


1.1 Disclaimer


This FAQ is to aid in informing the public about creating additional levels for
the Game Duke Nukem 3D, by 3DRealms. In no way should this promote your killing
yourself, killing others, or killing in any other fashion. Also, it should not
promote the building of real-world death-traps :)

Additionally, Klaus Breuer claims NO responsibility regarding ANY illegal
activity concerning this FAQ, or indirectly related to this FAQ. The information
contained in this FAQ only reflects 3DRealms indirectly, and questioning 3DRealms
regarding any information in this FAQ is not recommended. 


1.2 Trademark information


All specific names included herein are trademarks and are so acknowledged:
3DRealms, Duke Nukem, id, DOOM, IBM, Microsoft, Windows and MS- DOS. Any
trademarks not mentioned here are still hypothetically acknowledged.


1.3 Copyright notice


This article is Copyright 1996 by Klaus Breuer. All rights reserved.
You are granted the following rights:

1. To make copies of this work in original form, so long as 

1.1. the copies are exact and complete;

1.2. the copies include the copyright notice and these 
paragraphs in their entirety;

1.3. the copies give obvious credit to the author, Klaus 
Breuer;

1.4. the copies are in electronic form.

2. To distribute this work, or copies made under the 
provisions above, so long as

2.1. this is the original work and not a derivative 
form;

2.2. you do not charge a fee for copying or for 
distribution;
2.3. you ensure that the distributed form includes the 
copyright notice, this paragraph, the disclaimer of warranty in their entirety
and credit to the author;

2.4. the distributed form is not in an electronic 
magazine or within computer software (prior explicit permission may be obtained
from Klaus Breuer);

2.5. the distributed form is the NEWEST version of the 
article to the best of the knowledge of the distributor;

2.6. the distributed form is electronic. 

You may not distribute this work by any non-electronic media, including but not
limited to books, newsletters, magazines, manuals, catalogs, and speech. You may
not distribute this work in electronic magazines or within computer software
without prior written explicit permission.
These rights are temporary and revocable upon written, oral, or other notice by
Klaus Breuer. This copyright notice shall be governed by the laws of the Federal
Republic of Germany. 

If you would like additional rights beyond those granted above, write to the
author at "sz0759@rzmail.uni-erlangen.de" on the Internet.






Chapter 2

Introduction


2.1 *A word from Klaus Breuer*


Well, here's the v1.0 version of the FAQ! I've had lots of feedback and got
pointed into a lot of interesting directions - thanks to everyone who helped out
so far!

A word of caution for those of you who'ld like to print this FAQ: the table of
contents alone takes up 8 pages on my printer. You're probably better off reading
the whole thing with an ASCII editor (easier to search for keywords, too).
Personally, I use the most excellent LIST program from Vernon Buerg (no, I'm not
affiliated, just a happy user). 


2.2 *About the "UnOfficial" DUKE NUKEM 3D EDITING FAQ* 


Welcome to the release v1.0 of the "UnOfficial" DUKE NUKEM 3D EDITING FAQ.

What does that mean? Version 1.0 is the fifth release of the FAQ (the others were
v0.1 to v0.4), "UnOfficial" means absolutely 

nothing, DUKE NUKEM 3D is the name of the game, Editing is what the FAQ is all
about and FAQs are [F]requently [A]sked [Q]uesti 

Here's how revision classification works. If a new version of the FAQ only has a
small amount of information changed or added, the version number is increased by
0.1. This is called a "minor revision."
If a new version of the FAQ has a substantial amount of new information changed
or added, the version number is increased by 0.5. This is called a "standard
revision." If a new version of the FAQ has a huge amount of added or changed
information, major parts of the FAQ are rearranged, or major parts of the FAQ are
rewritten, then the version number is increased by 1.0. This is called a "major
revision." 

You may be wondering why chapter headings are enclosed in either {}'s, []'s,
()'s, or **'s. The definition of these is as follows: 

{}	Chapters enclosed in curly brackets haven't been
written yet.

[]	Chapters enclosed in brackets mean that the
information contained in the chapter has not been updated in this or the previous
FAQ.

()	Chapters enclosed in parenthesis mean that the
information contained in the chapter has not been updated since the previous FAQ.

**	Chapters enclosed in asterisks means that the
information contained in the chapter is new or has been updated for the current
version of the FAQ you are reading.

Also, ##'s are at times found in the text - these denote questions I urgently
need help on, and any feedback is especially appreciated.


2.3 *Getting the "UnOfficial" DN3DE FAQ* 


The "UnOfficial" DN3DE FAQ is posted every month (or earlier if a new version is
released) on the following Usenet groups: 

(1) comp.sys.ibm.pc.games.action
(2) alt.games.duke3d

The "Subject:" line of the post will be "'UnOfficial' DN3D EDITING FAQ v??.??"
where "??.??" is the version number of the FAQ.

The FAQ is also posted to the editing mailing list as soon as a new version comes
out.

An HTML version is available at
http://ww.aber.ac.uk/~ngh94/duke.html

New releases of the "UnOfficial" DN3D EDITING FAQ will be uploaded to internet
ftp sites as soon as I find suitable sites. 

The file name of the upload will be "dnefaq??.faq" where "??" is the version
number of the FAQ.

ATTENTION: ALL BBSes, Compuserve, America Online, GEnie, and all other
information services. PLEASE conform to the naming standard of the "UnOfficial"
DN3D EDITING FAQ when placing this file on your system.


2.4 Adding to the FAQ


If you want something added to the FAQ, please send E-mail to
"sz0759@rzmail.uni-erlangen.de" (no quotes), explaining what your addition is.

It will be reviewed, and if accepted, added to the next FAQ version. In the
E-mail, please supply your name and E-mail address.
Please note that all submissions to the FAQ become the property of the author
(Klaus Breuer) and that they may or may not be acknowleged.

By submitting to the FAQ, you grant permission for use of your submission in any
future publications of the FAQ in any media. The author reserves the right to
omit information from a submission or delete the submission entirely. 


2.5 *The DN3D EDITING mailing list*


Ginger (lattav@vnet.net) has set up a mailing list! 

To subscribe, send email to: majordomo@oozoo.vnet.net Put in the body of the
message: subscribe duke3d-edit 

A digested version is also available, send email to the same address, but the
body of the message should be: subscribe duke3d-edit-digest

To unsubscribe, send the line
unsubscribe
to duke3d-edit-digest-request@oozoo.vnet.net 

The mailing list digests are archived at ftp.vnet.net/pub/duke3d 


2.6 The DN3D EDITING ftp site


We now have an ftp site where everything for editing duke maps will be found. The
address is ftp.vnet.net/pub/duke3d. 


2.7 *WWW sites*


So far, I know of the following WWW sites which contain info about map editing
(in alphabetical order): 

http://fluffy.neb.net/Duke
http://www.3drealms.com
http://www.aber.ac.uk/~ngh94/duke.html
http://www.cris.com/~Demogorg/main.html
http://www.ea.ucla.edu/~kd/Duke3D/index.html http://www.fluffy.neb.net/Duke
http://www.frii.com/~afs/allabout.cgi/dn3d http://www.koan.com/~ryman
http://www.newreach.net/~avenger/
http://www.salamander.net/~avenger/msques.html
http://www.servtech.com/public/duke3d/
http://www.whiterock.com/kinglink/duke3d.html
http://www.wi.leidenuniv.nl/~cwong/myindex.html 


2.8 *IRC*


The IRC channel of interest is #duke3dedit. Don't ask the 'The 3D mode is messing
up my screen' question there. Please.


2.9 *Acknowledgments*


I'd like to thank 3DRealms for bringing out such an astonishing game! After two
years, we finally seem to have a DOOM killer. Also, it's real nice of you guys to
add the BUILD program into the package! We've never had an editor out so fast :) 

Thanks to Allen H Blum III, Richard "Levelord" Gray and Kenneth Silverman for
writing the Build docs. We all know you were in a big hurry and the docs nearly
didn't make it to the CD, so we especially appreciate your work!

ALPHABETICAL ORDER:

Ahmed Hammad (cosc19z5@bayou.uh.edu) aka Spasmo 
RightShift sprite selection/nonclip move trick and helped with the sliding door.

BKlehr	(bklehr@aol.com)
Found some FAQ bugs.

Brett Gmoser (gmoser@gramercy.ios.com)
Wrote a long tutorial covering all kinds of things.

Brian Gentry (gentryb@wasc.egginc.com)
Found out about switch sounds.

Brian Kidby (thekid@ornews.intel.com)
Wrote the 'DeathMatch Level Design Guidelines v1.0' for DOOM, which I've used as
a basis for my 'DukeMatch level design' section.

Bullethead	(???)
Wrote a couple of interesting lab notes, shedding light on some more obscure
parts of BUILD. 

Cho Yan Wong (aka Tempest) (pwong@pobox.leidenuniv.nl) 
Wrote several very good tutorials.

Dan Benge	(DanBenge@ix.netcom.com)
Ideas on level design and the Alice In Wonderland effect.

David Moisan (dmoisan@shore.net)
Many thoughts on level design.
Ginger Latta (lattav@vnet.net)
Has agreed to set up a mailing list, even including a digested form. She's also
setting up an ftp site for us!

Jeff Oliver (jroliver@cs.sci.csupomona.edu) 
Teleporter info.

Jim	(jek19@ios.orci.com)
Help on rotating doors.

John Allen Christian
(hugejohn@ix.netcom.com)
Info on Build keypresses (tilting floors). 

Nigel Hughes (ngh94@aber.ac.uk)
Converting the FAQ to HTML format.

Rober Coward (rcoward@madge.com)
Found some FAQ errors and Duke bugs.

RoboJim	(Robojim@aol.com)
Info on grapplers.

Scatt Man	(scattman@bssc.edu.au)
Once-only sounds and demo camera info.

Sir Hoppy	(glenn@interaccess.com)
Pointed out some errors in the air cents section. 

Steve C. Brown (sbrown@praline.no.NeoSoft.com) 
Help with F8 key.

Thomas Mueller (tsmuelle@cip.informatik.uni-erlangen.de) 
He found out lots of basic workings like Teleporters, Swimming Pools, etc and put
me on the right track in regard to sector effectors. 

THANK YOU! If, for some reason, I did miss you, PLEASE send me e-mail!

Finally, I'd like to thank everyone who reads this FAQ, you are what the FAQ is
for!


2.10 Accurate information


An attempt has been made to make the information in this FAQ as accurate as
possible. Unfortunately, due to the fact that the game was recently released, and
updates, add-ons, and new information are being worked on each second, it's hard
to keep up.


2.11 Help with new levels


If you are building a new level and are experiencing trouble, feel free to
contact me about it. Chances are that you are not the only one with this problem,
and I can add it to the FAQ. 

Also, your particular difficulty could be an interesting side- effect of
something else, and others might want to hear about it as well.

However, *please* read the FAQ fully before asking me about anything :)






Chapter 3

[Preliminary information]


This chapter explains some of the background behind creating add-ons for Duke
Nukem 3D.


3.1 [Intended audience for this chapter] 


I guess all of you have heard of the game DOOM by id Software :) Well, many of
you have created add-on maps for DOOM. You know how a door works, what a sector
is, what to look out for while creating a level.
While Duke3Ds BUILD engine is much more powerful than id's (see below for a list
of differences), it is similar enough for all the experts to skip this chapter.

What? You've never created a DOOM map? Never heard of DEU? Don't know that a
DOOM-style door works by raising it's ceiling off the floor?
Ok, this chapter here's for you.

First off, let me explain that I've created quite a few DOOM maps. Thus if I take
some things for granted you don't know about, please write me and ask! That way
I'll be able to work it into this chapter, making it easier to understand. 


3.2 [The basics]


Let's start by taking a look at the basics behind map building. 

Do yourself a favour and don't skip this section! I know many of you have met
computers through Windoze or some other GUI toy and don't know much about the
underlying intricacies of your system, but please - the more you know about how
Duke3D works, the better your maps will be. 

Besides, it's fun to learn things :)

3.2.1 [Differences between the Build and DOOM engines] 

Those of you who don't know DOOM (gasp!), feel free to skip this section.

The Build engine is the system used to create Duke Nukem 3D. Here's a list of the
improvements over DOOM: 

* Looking up and down
Finally, you can accurately shoot an RPG through an upper-story window without
needing a target in the window. 

* Rooms above rooms (even if you can't display them) 
Build real spiral staircases and crossing corridors. 

* Mirrors
See your enemies around corners.

* Multi-colored lights
Great ambience effects.

* Moving/rotating sectors
This is in my opinion (no, it's not humble) the best improvement. It allows you
to build subways, real doors, moving stairways, squeeze through rotating gears,
survive (?) earthquakes, drive around in vehicles...the possibilities are simply
endless.

* Transparent sprites
Build ghosts and proper windows.

* Flying via jetpack
Fly about, attack your opponents from above. Very useful as a long drop can now
kill you.

* Underwater diving
The obvious extension to the flying capability. Explore an underwater world,
fight sharks :)

* Sloping floors and ceilings
This adds no end of realism! Finally, we can have sloping corridors,
pyramid-shaped buildings, real domes... 

* Rotated sprites
Doesn't seem like much, but a rotated sprite marked as 'blocking movement' can be
used as a floor - and thus we can fake bridges!

* Blastable walls
A very nice touch - it allows you to blow (predefined) holes in walls.

* SVGA support
If your system can take it. Looks good, but in my eyes not so important.

* Highly customizable
Very nice, this. You can write your own opponent-AI, very easily add new sounds
and graphics, and change the weapons simply by editing an ASCII file.

3.2.2 *Useful cheats for testing levels* 

Read the Duke Nukem FAQ for a list of all cheats. Here are just the codes I find
myself using while testing a level: 

DNRATE	Display the fps meter in the top left.

DNCOORDS	Shows your cordinates.

DNSHOWMAP	Show the full map.

DNDEBUG	Shows some interesting info in the top left.
## Anybody know what it means? Could be real useful.

DNCLIP	Toggle clipping. This will kill you if you walk
into empty space, so use it only to quickly walk through doors and the like.

DNKROZ	Toggle God mode.

DNUNLOCK	Unlock all doors on the level.

DNWEAPONS	Give all weapons but no items or keys.

DNITEMS	Give all items and keys.

DNSTUFF	Gives everything.

3.2.3 [What a map consists of]

Maps are made up of sectors (rooms), walls and sprites. 

3.2.3.1 [Sectors]

The map itself is basically just a collection of sectors. A sector is a room
consisting of a floor, a ceiling and walls. Imaging a square column, looking like
this: 
__________
|\	\
| \	\
| \__________\
\ |	|	Top block: Roof
. \ |	|
. \|__________|
. .	. .
. .	. .
___________ .	Player area
|\ .	\ .
| \ .	\ .
| \__________\
\ |	|
\ |	|	Bottom block: Floor
\|__________|

The lower block is the floor, the upper block is the roof, and the player moves
about in the missing bit in the middle. The edges are walls, although it's
possible to make a wall intangible to the player, allowing him to cross it into
another sector.

Sectors can share borders with other sectors, and can include other sectors as
well.
Thus a room with a crate standing in the middle would consist of two sectors: The
room itself, with a square sector (the crate) inside it.
The crate sector would have the same ceiling height as the room, but with a
slightly raised floor (forming the crate): the player can hop onto the crate, but
he can't walk below it. 

The walls of the sector making up the crate would be intangible (invisible and
not blocking player movement), otherwise it would look like a column instead.

This also explains why we can't have real bridges: if we raise the floor of the
bridge sector high enough, the bottom block will elongate upwards until we have a
wall instead. 

Of course, seen from above sectors can have any shape: square, rectangular, round
or kidney-shaped.

3.2.3.2 [Walls]

Walls come in two flavours: one-sided and two-sided. 

Imagine carving a dungeon out of a mountain. So far you have dug two rooms,
connected by a tunnel. This would translate into three sectors; two big ones
connected by a smaller one: 

_________________________
/	|	_______________
/	.______.	|
|	* <- The player	.	.	|
\	.------.	|
\	|	|_______________|
\________________________| (seen from above) 


Obviously, the outer walls have only one side, since they consist of solid rock.
But the borders between the two big sectors and the small one are two-sided walls
- you can walk on both sides of them.

3.2.3.3 [Textures]

Textures are what a wall, a floor or the ceiling actually looks like.
They make the difference between a wall looking like a brick wall or a steel
slab. You can also texture a floor or the ceiling. 

Duke has quite a lot of textures for us, ranging from plush red wall-towall
carpeting to green alien slime. Some textures are even animated, meaning they
look as if they were moving - water is a nice example of this.

Textures always make me feel a bit like a magician - with a wave of my wand (ok:
mouse) I can change a wall from flimsy straw to solid steel and back.

3.2.3.4 *Sprites*

Sprites are all the objects in Duke3D: the flower pot in the corner, the switch
on the wall, the alien lurking behind yu - even the player is a sprite.
A sprite is always flat and two-dimensional, like a piece of paper. Even a
3D-looking alien is just a sprite: Duke3D simply shows you different sprites
according to from where you're looking at the alien.

Sprites exist in three forms:

Standing up This sprite always faces you, looking nice and 
solid. A flower pot or a bottle is a typical example.

Flat	This sprite actually behaves like a painted piece
of paper. They look weird standing in the middle 

of a room, so they are usually pasted on the walls (like switches or posters).

Lying down	These sprites are also flat, but they're lying on
the ground (or hanging on the roof) instead. An example are the magazines
scattered on the ground in the Red Light District (E1L2).

Sprites can block movement and can be placed at any height. Thus it is possible
(using sprites lying down) to create real 3D functions like bridges out of
sprites.






Chapter 4

[Planning and designing a level]


This chapter looks at designing a level with BUILD.EXE, the editor supplied on
the CD (in \GOODIES\BUILD). 


4.1 *Installing BUILD*


An awful lot of people are having an awful lot of trouble getting BUILD to run.
So here's the beef:

* Install Duke3D to your hard drive.

* Copy everything from \GOODIES\BUILD into the Duke3D 
directory (NOT into a subdirectory thereof!) 

* Remove all read-only attributes: ATTRIB -R *.* 


4.2 *Before starting*


I know you're eager to start building the level (why else are you reading this
FAQ?), but there are several things you should do before firing up the editor and
designing away: 

Play the game Play the whole Duke Nukem 3D game from start to 
finish. All three episodes. This will give you lots of ideas on what is possible
and what you'ld like to do.
Look critically at how things happen: doors opening, aliens suddenly appearing,
lights changing, gears rotating...

View the maps Use the editor to have a close look at the 
existing maps. How do these doors open? What kinds of tricks were used to work
around the limitations of the Build engine? How do people actually do a house -
note how all walls are actually build out of one-sided walls. Things like that.

Have a theme Please. Don't build yet another red light district 
with a sleazy bar and some dancers. We've got one already!
Try to think of something original and take some time to really think about what
you're trying to do: the New York traffic? A nuclear power station? An underwater
base? A barren planetoid surface? Also try to think what would fit into the theme
- make a list.
A .TXT file with a short story setting the mood and explaining your mission is
also nice. 

Draw a map	Take some graph paper and draw the whole map
first. Believe me, your level is going to be lots better this way. You'll be able
to take your time and think about everything you want to include. Another
approach is to just make a rough sketch of the map with a good theme and create
everything 'on the fly'. That's the way it usually ends up anyway :), but the
map-drawing approach does produce nicer-looking maps.

Less is more Zen, yes. Also known as the KISS principle: Keep 
It Simple, Stupid.
Remember that you have lots of tools and tricks to create a map - don't use them
all! Don't include, for example, dancers just because you can. Don't use the trip
mines in a non-futuristic level. Leave out the security cameras in a medieval
castle (time travel theme).
Rather build several levels, each based on one or two ideas.

Keep it small Beginners usually make the mistake of designing 
cyclopian buildings. Massive forecourts, towering walls, huge gloomy halls - all
empty.
Rather keep the rooms small and full of detail - they will be more interesting
and the game will run faster.

Time	You'll need loads of it. Much more than you think.
Especially the shading and testing will take days. Weeks.
Have a look at the original levels and see just how much time and care has been
spent on them. Don't post a level which is substantially below the niveau of
3DRealms levels - nobody will like it.

Data	It is said that you should write what you know,
and the same applies to level design. If you've never really looked hard at a
subway station, don't try to create one.

Read this FAQ Don't jump into drawing your level half-way 
through reading this FAQ - wait until you have a good idea just what is possible
with the Build engine.

Your first level
Face it. Your first level is going to be something you'll be ashamed of after
designing your third level. Don't post it.

4.3 (Pros and cons of using real-world maps) 


There are lots of levels based on maps of the real world. Maps of your campus
(hello, first years!), maps of your dorm, your apartment, your house.
The question is, should you use them?

4.3.1 (Advantages)

Real-world maps are drawn by professionals (ok, ok, I've also seen houses
designed by blind idiots) who know what they are doing.
They don't forget to make the outer walls thicker than the inner ones. They don't
forget the kitchen or the storage space. The halls are of the right width...in
short, the whole map is realistic and believable.

Also, it's real quick creating a level from such a map since you don't have to
think and design as much.

4.3.2 *Disadvantages*

Such maps are also boring.
Believe it or not, but most architects didn't design their block of flats for
gun-toting maniacs chasing each other through the corridors.
There are too few places to hide and the map typically has a simple, utilitarian
look.

Scale is a hassle as well. Ever looked real closely at a subway station? It's
actually very big and empty. And very boring as a Duke level.
So you'll have to scale everything down by quite a lot anyway. 

Remember that it's great fun for yourself to run through a virtual representation
of your house - but others who don't know you might find such a map terribly
boring. 

And the biggest disadvantage of all: you don't think enough about your level. The
more time you spend mentally planning your world, the better it will become.


4.4 (Using DOOM maps)


With the Wad2Map program (see further below), it is now possible to convert DOOM
maps to Duke3D maps.

Do everybody a favour: don't.
And here's why:

* We've _seen_ the DOOM maps already.

* They aren't designed to take advantage of the Build 
engine.

* They aren't designed to work with the new monsters. 

* It's a heck of a lot of work checking a level after 
conversion, and it's easy to mess things up and even forget textures (HOM, here
we come!).

4.5 *Designing the level*


When designing a level, keep in mind that there is no formula telling you how to
build a fun level. Unfortunately, I can't just tell you "Do this and that, and
everybody will love your level". But I can give you some tips and pointers. 

4.5.1 *Level types*

There are basically four types of levels: 

4.5.1.1 *Single player*

Single player maps are typically large and intricate, full of detail and clever
monster ambush points. They are aimed at people who play them on their own (for
example, nearly everybody in Germany, as the telephone rates are simply
shocking). 

4.5.1.2 *Co-op*

Few levels are actually designed for co-op playing only. If they are, they are
larger versions of single-player levels, with a lot more monsters and perhaps the
odd trap which can only be passed via teamwork.

4.5.1.3 *DukeMatch*

Since the original levels in Duke3D are very very good as both single player and
(usually, anyway) co-op, most people create DukeMatch-only maps.
These maps are small and fast, concentrating on action instead of the
surroundings.

4.5.1.4 *My room/flat/dorm/house*

These levels attempt to copy a real-world place with as much accuracy as
possible.
These levels are typically rather boring and only of interest to the people who
know the place well.

4.5.2 *Choosing a level type*

Your new level will usually be one of the above - very few maps suceed at being
good at everything.
Happily, there's an exception to the rule: JenApt (Jennies Apartment) is an early
(and great) level which excels at combining all four level types in one. Created
by Jennifer Lynn (fragment@cyberramp.net), it's well worth looking at. 

Single player levels are easy to do - all you need is a good idea, lots of
imagination and plenty of time. If you make the level large enough, you might be
able to combine it with a co-op level.

DukeMatch levels are surprisingly difficult to create. Not only do tastes differ
(by a lot! For example, do I Hide&Snipe or Chase&Blast?), but you have to do a
lot of testing to make the level just right.
And even then, it'll only be just right for you, and others might not like it at
all. See the section on DukeMatch level design below.

The 'My very own room in VirtualReality MultiMedia CyberSpace (tm)' theme we'll
leave to the Windoze-players. 

4.5.3 *Random tips and thoughts*

## Feedback needed! In this section, I'ld like to simply list tips and tricks to
keep in mind while designing a level, and I'll organize them better in a later
release of the FAQ. 

* Build from the outside in.
When creating a house, for example, first create a huge bonding sector,
containing everything else. You can always resize it later.

* Do the rough work first.
Build your house (or dungeon, or subway, or whatever) like you would build it in
real life: start with the outer walls, add the rough rooms, connect everything up
and only then add the details: glass in the windows, different textures, etc.

* Use F12 to dump the map to disk and print it out. 

* Remember that scale is important! Duke levels are usually 
smaller that their real-world counterparts. 

* Take it easy on triangle-shaped sectors, the tip can look 
real bad.

* Save your level a lot. Use the 'save (A)s' option to 
create several versions of your level. Thus, if an idea goes wrong, you can
always return to an earlier version. The more backups you have, the happier
you'll be if BUILD nukes your map.

* Beware the bug! BUILD is not perfect and contains some 
nasty bugs capable of rending your map to pieces. See the section on Build Bugs
for more info.

* Scare the player. Dan Benge came up with the idea of 
breaking a (single player) level into scenes: lead the player into it (lots of
ambience sound), lead him to the climax (octabrain in the face, whatever), reward
him afterwards (triumphant music, power up, keys). Tension is very important in a
level.

* Most sprites are too large when just inserted as they are 
(especially the buttons). Make sure you scale everything right.

* Make players earn bigger and better weapons. Especially, 
guard the bigger ones well.

* If the player falls into nukage, give him a way out (a 
button to press, stairs...). He should be punished for moving carelessly, yes,
but not killed.

* Mark secret doors - a lightly darker or mismatched texture 
(forcing you to look closely) will do.

* Keep in mind that players will try _anything_ - if they 
are crazy enough to try and jump to that ledge, reward them if they make it (and
punish them if they don't >:) 

* Please don't overuse the effect of monsters warping in! 
It's so darn unrealistic! rather open a hidden door or somesuch, and have the
opponents boil out from there. 

* Please don't post half-finished levels to let others see 
your 'work in progress'. What for? You'll only make a bad name for yourself if
you release half-baked levels... 


4.6 *DukeMatch level design*


The info in this section I've shamelessly swiped from the excellent 'Deathmatch
level design guidelines v1.0' from Brian Kidby (thekid@ornews.intel.com).

As the basis for this section was aimed at DOOM players, I haven't included as
many Duke-specific things as I should. ## Please send me your thoughts and ideas,
I'll be expanding this section.

4.6.1 *Monster placement*

Pig cops are useful for supplying ammunition to the player. Since ammunition
respawns, the question is if you want your players to fight for their ammo,
especially as dead enemies don't always drop anything (it's easy to hack the
GAME.CON file for this, though - see lines 1072/2862 and 188 in USER.CON). 

Other monsters (the leaping chaingunning lizard comes to mind) might give ammo as
well, but they usually just distract from the main aim of the game - nuke your
opponent! 

However, the placement of monsters can do a lot to generate the 'feel' for your
level - minibosses might keep a large area clear for a long time, as nobody will
want to get close to them if they dont have to...

4.6.2 *Weapon placement*

4.6.2.1 *Power weapons*

Power weapons are defined as the favourite DukeMatch weapons: the chaingun and
the rocket launcher.
In nearly all DukeMatches I've played, the first priority of the players was to
get one of these weapons. The second was to start using it >:)

These weapons should be places as far apart as possible. This has three reasons:

* Getting the gun
Placing the weapons far apart forces the players to cover more ground. Thus they
meet more opponents and monsters, possibly trigger traps and learn the layout of
the level. 

* Defending the gun
Many DukeMatchers will go to a power weapon and 'sit on it', waiting for the
other players to show up. if the weapons are far apart, the players won't see
much action during their wait, forcing them to move ot to hunt sooner - much more
exciting.

* Covering tracks
In a new DukeMatch level, players like to keep the locations of the weapons
secret for as long as possible. If the weapons are far apart, the chances of
being followed are so much smaller.

4.6.2.2 *Starting-point weapons*

Every starting point should have a shotgun next to it, so the players are not
completely defenseless at the beginning. This also gives them more confidence to
go out looking for bigger toys to use.

On the other hand, some people prefere to place the starting points right next to
'normal' weapons - every start point next to a different weapon. This makes
respawning interesting, as the kind of weapon available at the beginning
(Shrinker vs. Trip bombs, for example) radically changes the style of play. 

4.6.3 *Ammo placement*

4.6.3.1 *Amount and location*

Place small amounts of ammo in high-traffic areas, and larger (not too large!)
stashes in secret places. Adding a sniper spot near the bigger stashes makes life
a lot more interesting, too. 

4.6.3.2 *Ammo Quantity Types*

Easily accessible ammo should be of the 'small quantity' type, eg single pipe
bombs instead of pipe bomb boxes, as this eliminates waste when a player picks up
more than he can carry. 

Also, larger amounts of ammo should be strategically placed (see above).

4.6.4 *Health placement*

Rarely does health seem to be a problem in DukeMatch games. Usually, players
either die really quickly of a massive lead overdose, or they run and hide,
sniping at their opponent. 

If you do place health around (and I still think you should), do so sparingly,
observing the same rules as for ammo. Also, place toilets and water fountains
only in high-traffic areas, to avoif players disappearing for a long time to fill
up their health slowly (although, if several nice sniper spots are nearby...). 

4.6.5 *Architectures*

First off, let me say that level layouts are always a matter of taste.
Here are just some things which I like in DukeMatch levels: 

4.6.5.1 *Large, open areas*

Fun! Show your aim at long-range pistol shooting, have rocket launcher duels
(have you mastered jumping over an approaching rocket?), fight several players at
once and have lots of space to move about.

4.6.5.2 *Long, wide passages*

Same as for large areas applies - running towards somebody, dodging his attacks
while shooting your own is great fun. 4.6.5.3 *Nooks 'n crannies*

Such areas should not be too large, but it is fun as well: 

* Hunting somebody through narrow, twisting passages is an 
adrenaline rush in itself - is he hiding behind this corner?

* Lots of nice sniping spots.

4.6.5.4 *Balconies, bridges and towers

It's always fun watching your opponent walking under you, completely unaware of
your presence until you pull the trigger... It's also nice blasting a sprite
bridge out from under his feet :)

4.6.5.5 *Fortresses*

At times, players may decide to pay a 'capture the flag' theme, with four players
defending a fortress and four others trying to break it (perhaps with the aim of
reaching/rescuing the dancer in the middle?).
The fort should be wel armed and not too large with lots of nice sniper spots
(and the odd blastable wall to enable attacks through the back).

4.6.5.6 *Obstacles*

Obstacles (pillars, crates, tables, sprites) are very important in DukeMatch, as
they allow you to hide and dodge enemy fire. 

4.6.5.7 *Sniper spots*

Snper spots greatly add to DukeMatch levels. They should always have an
escape-route, though, just in case your first shot missed...
One-way walls are good for this, but perhaps a bit _too_ easy. 


4.7 *Once your level is done*


A finished level is far from finished - lots of things remain to be done:

Shading	Shade your level! See how efficiently 3DRealms
used light and shade in their levels? Do the same - carefully shade every single
room. Add lamps and (colored) lights. Sunlight streaming through the windows.
Shadows behind columns and buildings. Shade plays a major part in how realistic
(and thus, how good) a level will look. Doing it well takes ages.

Textures	Well, we won't see the HOM (Hall Of Mirrors)
effect from DOOM anymore. But make sure your textures are aligned. It's so easy
to do using Build, please make sure they look alright! Nothing worse than seeing
the brick texture break on the edge of a wall, clearly showing it to be fake. Use
the [.] key a lot, make sure you know how it works (and save before you do, it
crashed a couple of times on me).
Also, don't use too many textures - the have to fit your theme and the game runs
faster on fewer textures.

Use the [.] key a lot, make sure you know how it works (and save before you do,
it crashed a couple of times on me). Also, don't use too many textures - the have
to fit your theme and the game runs faster on fewer textures. 

Details	'All those tiny little details...'
The TV in the corner. The discarded bottle on the street. Blood on the walls. The
camera turning by just the right amount. The perfect ambience sound in the
perfect place.

Realism	Your map must be totally convincing. As said,
shade plays a large part in this, but so does the map itself: are the walls thick
enough? Are they too thin? Does that texture belong here? Is it too noticable
that this sprite always seem to turn to face you?

Testing	Lots! Play the level on your own. Play in in coop.
DukeMatch it for hours (if you can't play in it for hours, something's wrong).
Fine-tune it: is the window at just the right height? Is that elevator positioned
in the perfect place? Testing is really important - let your friends play with
your level (without you being present) and listen to their comments.

Difficulty	If you're told that your level is too easy, don't
make it more difficult by simply adding lots more monsters! That's a typical
newbie mistake - rather place the monsters in better positions and redo the
layout a bit.

Light	Next to shading (see above), the amount of light
in a level is important. While a dark, gloomy level can create great atmosphere,
keep in mind that few of us enjoy paying in pitch darkness. 

Jokes	3DRealms added lots of in-jokes: the doomed space
marine, Indiana Jones, the Terminator, the alien on the toilet...
All these are jokes you can't use again: they're old now. Invent your own!






Chapter 5

(A walkthrough to creating a simple level) 


This chapter will guide you to designing your first level. It's very much written
like a cook-book - you don't have to understand exactly what you're doing; if you
follow the instructions, it'll work out ok :)

Details about working with BUILD can be found in the next chapter.


5.1 (Planning)


Remember: we have to plan the map first. For our first map we'll build a very
simple map: a storage house on a street. It will include a door, a window and
have a sloped roof.


5.2 (Getting ready)


If you're still in Windoze, get out. It'll do you good, and both Duke3D and Build
run better under DOS.

I'm assuming that you've installed Duke3D on your hard drive on C:\GAMES\DUKE3D
and that your duke CD is in drive F. 

So now you'll have to copy the editor into your Duke3D directory as well:
CD C:\GAMES\DUKE3D
XCOPY F:\GOODIES\BUILD\*.*

Now start up BUILD.EXE. A screenfull of legalese will pop up (in effect it says
that you can't copy BUILD and should only design maps for the commercial version
of Duke3D - obvious). Press ENTER to get rid of it and -voila!- you're in the 2D
mode. 


5.3 (Creating a new map)


Press [Esc]. On the bottom, a small menu will pop up: (N)ew, (L)oad, (S)ave, save
(A)s, (Q)uit Press [N].

Asked 'Are you sure you want to start a new board?', you press [Y].
Note to non-US users: the program reads your keyboard directly and thus expects
you to press the key right next to [T] - for ze Germans, this would be [Z].

The new map will automatically be called NEWBOARD.MAP - overwriting any file with
that name in your directory. So be sure to use 'save (A)s' the first time you
save your map. 


5.4 (The 2D screen)


The screen in front of you now is the 2D mode, where you'll be doing all the
rough work like laying out your rooms and corridors. You are currently viewing
your map from above. (Changing room heights, textures, etc are done in 3D mode,
so be patient).

The screen consists of several parts:

5.4.1 (Map)

Most of the screen is given over to the map itself. Currently it's just
displaying a grid.
All line endpoints and all sprites will automatically align themselves with the
grid (making it easy to design rectangular rooms, for example). You can change
the grid size by pressing [G] several times: try it now. You'll see the grid size
shrink and then disappear (meaning the grid is switched off and you can draw
anywhere). Keep pressing [G] until you see the biggest possible grid. The biggest
(meaning coarsest) grid has points which are 1024 units (that's 256 pixels)
apart.

To see the maximum possible size of your map, use the [A] and [Z] keys to zoom
your map in and out. Try it, and then zoom back to a comfortable distance.

The map also shows a red cross (your mouse cursor) and a white arrow (your
current position).

5.4.2 (Message window)

The message window is the bit just below the map: on the left it shows the text
'DUKE NUKEM BUILD V041996 BUILD by Ken Silverman' (the version from April 1996).
The right part of the message window currently just shows a red line - that's
where the program will display messages and ask you for any info it needs. 5.4.3 (Data window)

The data window displays info about currently selected objects (like sectors,
walls or sprites) and can also show some help texts.
Right now it should be empty.

5.4.4 (Info window)

The info window also consists of two parts: on the left is your current (x,y)
position in units as well as your viewing angle. On the right it shows how many
resources you have used up already. Interesting, because it shows you the limits
imposed by the Build engine: you can have a maximum of 1024 sectors, 8192 walls
and 4096 sprites.


5.5 (Moving about)


As said, the white arrow is your position and heading on the map. You can move
about in two ways:

Cursor keys Like in the game, these move your forward and 
backwards. You can also rotate your heading. Interestingly, it also prohibits you
from walking through blocking walls - this way you can see if the player will
actually be able to walk everywhere he should be.

Mouse	The red cross is your mouse cursor and therefore
(surprise!) moved with your mouse. Pressing the right mouse button transports
your position to the mouse cursor - try keeping the button pressed and moving
your mouse to see what happens.
5.6 (Creating a room)


So, let's start by building the street first. Move your position somewhere into
the middle of the map and zoom in until you're at a nice comfortable distance
(three squares of the grid should be about an inch in length). 

Now point the mouse at the bottom left of your currently visible map and press
the spacebar.
A small green square appears on a grid point and the message window displays
'Sector drawing started.' And so it has - try moving the mouse about on the
screen. See that white line? That's your first wall. Move it straight up by
exactly seven squares and press the spacebar again.

Another green square has appeared, and you've begun drawing a new wall. Move it
exactly 14 squares to the right and press the spacebar again. Draw the next wall
seven squares straight down and press the spacebar.
The last wall you'll end exactly on the first point created, thus forming a neat
rectangle.

When you pressed the spacebar for that last square, the lowest wall started
flickering. This means that it's the currently selected wall. Press [Alt]-[Tab]
to get some info on the wall. Don't worry about what all that stuff means - the
only thing of interest right now is the Wall number: the one on the bottom is
wall number 4.
Move the cursor near the other walls and note how the other walls get selected.
The info at the bottom, however, is not automatically updated, so you'll have to
press [Alt]-[Tab] for each wall again.

Just press [Tab] now and have a look at the sector info. All that stuff is
explained later in the FAQ, it's not important right now.


5.7 (3D mode)


Make sure the white arrow is inside this room and press the [NumEnter] key. This
is the Enter key on the bottom right of the numeric keypad (the big one in the
middle won't work for us). 

Wow! 3D!
You're now inside your room. It's still somewhat narrow and has walls consisting
of ugly gray stone.

In 3D mode, two things are of particular interest: 

The mouse	The mouse cursor has changed into a white cross -
you use it to point at the things you want to change: walls, sprites...anything.

FPS	On the top left is the FPS (Frames Per Second)
counter. This is the speed at which the screen is being redrawn.
This number is terribly important while designing your level: if it drops too low
(below 10), the level will play jerky and you won't enjoy it. The FPS are
connected to the complexity of the displayed image - the more walls, sprites and
textures the computer has to show on a single screen, the lower the FPS count
will be. As the Levelord says: "Framerate is God!". So keep an eye on it.

You can move about in 3D mode with the cursor keys. Don't use the cursor keys
from the numeric keypad but the ones in the middle. 

You can jump back and forth between 2D and 3D mode by pressing the [NumEnter]
key.


5.8 (Raising the roof)


This is supposed to a street scene, right? So the first thing we'll need to do is
raise the roof.

Point at the ceiling and press [PgUp]. You can see it move upwards a bit, pulling
the walls with it. Point at the wall in front of you and press [PgUp] again.
That's another way to raise the ceiling.

Raise the roof until you reach a height you feel more comfortable with. The room
should now resemble a small aircraft hangar. 


5.9 (Textures)


Now for some magic: let's change the appearance of the walls and floor.

5.9.1 (The floor)

The floor is first: we'll change it from a simple and ugly stone to a street.
Point at it and press [V].

The screen clears, showing the current texture at the top left and the number '0'
at the bottom left. This screen contains all floor textures you have used on your
map so far, and the number '0' is the number of the currently selected texture. 

Press [V] again: now you'll see a list of _all_ textures in the game, including
things which are actually sprites (like the weapons), but can be usd as textures
if you want (although they'll usually look weird).
You can move your cursor (the white box) about with the cursor keys - try it.

Have a look at all the possibilities.
Now press [G] (meaning Goto). The program will ask you 'Goto tile:' on the top
left. Use the backspace key to erase the currently shown number and type '815'.
Press [Enter]. 

Voila! The floor changed its appearance and now looks more like a street.

5.9.2 (The roof)

Now for the roof. The street has sky above it, right? So, using [V] again we'll
select tile number 89.

This looks weird, not like the sky at all. So we parallax it: point at the roof
and press [P].
Much better! Move around a bit, using [Ctrl]-[A] and [Ctrl]-[Z] to look up and
down. (Yes, if you look too high, the texture will mess up - it's the reason most
outside areas are so high and narrow in the game. Keep your eyes low for now :) 

5.9.3 (Flying about)

There are three movement modes available to you in the 3D view: 

Game Mode	Here you walk around like the player in the game.
Use [A] to jump and [Z] to duck.

Height Lock In this mode, you're always at the same height 
above the floor. Use [A] and [Z] to raise and lower yourself.

Float Mode	You're completely unaffected by the floor and can
smoothly change your height with the [A] and [Z] keys.

Use the [CapsLock] to change between these modes. 

5.9.4 (The walls)

Currently we're still sitting in a walled-in box. Let's make this look even more
like street.

Point at the west wall and give it the texture number 794. Now this looks more
like a house. However, I bet the windows are not perfectly aligned with the
ground and you only have half the lowest row showing.

So let's change the orientation of the wall texture. Point at the houses and
press [O]. Hmm, the texture now hangs from the roof instead of the floor.
Still not good enough. Press [O] again and raise the ceiling until you have three
rows of windows, looking just right. Walk up close to it, making sure it looks
ok.

Now we'll copy this texture to the other four walls: Point at the west wall again
and press [Tab]. This copies the texture into memory, causing some text to
appear: 'Lo = 0/hi = 0/USED= 1/MEM = 8192'. (Of interest is only the 'USED' value
- it shows how often we have used this texture already).
Point at the three gray walls in turn and press [Enter] on each. 

Much better. Now we're standing on a street (or a courtyard). Note how neatly the
textures fit together in the corners? That's because we stuck to the grid while
designing this room in 2D mode. All textures have width and height in a multiple
of 8, same as the grid. So stick to the grid, and you'll be ok. 

Last thing to do now is to make our house stand out. The street is on the north
edge of our house, so point at the south wall and give it the texture number 723.
This changes our house to a darker, more brooding one.


5.10 (Building the house)


So far we have a street but no house.
To design the house, we first drop back into 2D mode: press [NumEnter].

5.10.1 (The house sector)

Press [G] again, making the grid a bit smaller (exactly by half, in fact). This
is now the second-biggest grid available to us. 

Point on the grid just below the lower left point of the street and press
[Spacebar]. Don't draw on the point itself, but one grid unit below it - if you
made a mistake, press [Backspace] and try again.

Draw a line to the right parallel to the street, along its whole length. Press
[Spacear] under the bottom right point of the street. That's the first inside
wall of the house. The next wall goes straight down by 8 grid units.
Keep going until you have a rectangle defining the inside of your house.

5.10.2 (Fixing the house sector)

Move the white arrow inside the house sector with the mouse (notice that you
can't move from the street to the house with the cursor keys, as there's a thin
line of nothing (solid rock) between the street and the house) and switch into 3D
mode. 

Yuck, there's the gray stone again. Again, we first raise the roof to a
comfortable height (don't make it too high - look at the room you're in now to
get an idea of the proper height). 

Now that we have a (somewhat long and narrow-looking) room, we fix the floor
first. Let's make a red carpet on a wooden floor, like the one we saw in the Bank
Roll level. 

5.10.2.1 (The carpet floor)

Point at the floor and give is texture number 749. Hmm, the floorboards look a
bit wide. Point at them and press [E] (toggles between enlarged and normal
floor). Now the wood looks better. 

Now how will we do the carpet? After all, we don't want wall-to- wall carpeting,
we want the wood to peek out at the edges. 

Since a sector can only have one floor texture, the answer is to create a second
sector inside the house sector. A smaller one, with the same roof and floor
height as the first one, but a different floor texture.

So we pop back into 2D mode and design a second sector inside the house. It looks
just like the house sector, but is a bit smaller (one grid unit distance to the
walls).

Place the white arrow in the middle of our new sector and press [NumEnter].
Whoops! A message appears: 'Arrow must be inside a sector before entering 3D
mode'. What happened?
Place the arrow in the narrow space between the old house sector and the new one
and press [NumEnter] again. Whooo - tight! You see, the old sector is now
doghnut-shaped - we've created a solid block of stone right in the middle of it. 

Go back into 2D mode. Point inside the new sector and press [Alt]-[S].
The walls now turn red, and the message window says 'Inner loop made into new
sector.'.

Back in 3D mode we see that everything is ok now - we have our original house
back. No sign of the new sector, though. That's because the new sector
automagically has the same floor and ceiling of the original sector. Point at the
middle of the floor, press [V] and select texture number 899. See? There's our
carpet.
Play about raising and lowering the roof and floor of the carpet sector to get a
good understanding of what we've done just now. 

When you're done, set the floor and roof of the carpet sector to the same as the
house sector and give all four walls a nicer texture: 783. Remember that you can
use [Tab] and [Enter] to make life easier.

5.10.2.2 (Nice walls)

Hmmm. The walls are suposed to have a wooden toe-rail along the bottom and a dark
stripe near the ceiling, and currently they look wrong.
Looks like we'll have to shift the texture up a bit: point at one of the walls
and press [Shift]-[Num2] (that's the '2' key on the numeric keypad).

See it move up a bit? Keep pressing [Shift]-[Num2] until the wooden toe rail is
exactly right on the floor (walk up close to the wall to make sure no single line
of brighter pixels is peeking underneath the wood). Now the wall is so high that
the texture repeats on the upper part, so we'll lower the roof a bit. 

Sinve the texture is attatched to the roof, this lowers the whole wall into the
floor. Point at it and press [O] (for Orientation). Move the roof again and note
that the texture is now attached to the floor, not moving with the roof.

Make the texture look good again by using [Shift]-[Num2]. Then lower to roof
until the wall looks just perfect. Don't forget to lower the roof of the carpet
sector by the same amount, otherwise it won't look right.

If the other walls are not looking ok, point at the wall you've been working on
and press [.]. This auto-aligns the textures of all walls (you might have to
press [O] on the other three walls as well).

5.10.2.3 (Finally, the roof)

The roof also isn't looking to good so far. Give it the texture number 182. And
change the roof texture of the carpet sector to match, of course :)

5.10.3 (Saving your work)

Nice. Now just so we don't loose everything, go back into 2D mode, press [Esc]
and [A] (save As). Erase the name 'NEWBOARD' with [Backspace], type [DEMO] and
press [Enter]. 

Now no matter what happens, we won't loose our work so far. 

5.10.4 (Building a doorway)

The house is well and good, but we're missing something important: a doorway out
to the street.

To create one, we'll need to be in 2D mode and create a sector connecting the
street and the house.

Move to the right of the house and zoom in a bit so you can see the grid very
clearly. Move the cursor just underneath the white line defining the top edge of
the house. See that little black dot on it just above the red cross? Move the
cross until the dot is exactly three grid squares from the right edge of the
white house sector and press [Ins].

A small green square appears: we've inserted a point on the white line, splitting
it in two. Insert another point on the same line, two grid squares to the left of
the first one. 

Now do the same thing to the bottom part of the street sector: insert two points
just above the points on the house sector. These four new points will now define
our doorway sector. Notice that the doorway will share two lines: the bottom one
will also belong to the house, while the top one will connect to the street.

Now build the door sector: point at the bottom left point and press [Spacebar],
starting a new line. Point at the point on the bottom right and press [Spacebar]
again. Keep doing this with the top right and the top left point. End the final
line on the bottom left point, creating a rectangle which will immediately turn
partly red.

That's our new doorway sector. Look at it: the top and bottom lines are red
(two-sided lines) and the left and right ones are white (one-sided).

Let's view this in 3D: place the arrow on the street and switch into 3D mode.

Doesn't look too good so far, does it? The doorway reaches all the way into the
sky, appearing all wrong. So let's make it lower: walk into the doorway, point at
one of the walls and keep pressing [PgDn] until the roof comes into view.
The roof looks a mess because it's still parallaxed (the doorway took on the
setup of the street sector - notice the floor is asphalt), so press [P] on it.

Take a few steps backwards into the street and change the height of the doorway
until you're happy with it (it should end just at the top of the dark windows).
The walls look a bit messy, both over the doorway and inside it. That's because
their textures are attached wrong - press [O] on them. Much better.
Also change the doorway sectors floor, roof and wall textures to 773.

Now we have a house which we can leave through a doorway and walk into the
street!

5.10.5 (Adding a window)

So, what's a window? Easy: just like a doorway, but with a raised floor and some
glass in it.

Since you now know how to build a doorway between the street and the house, go
ahead and build another one somewhere to the left of the first doorway.

Got two alike doorways next to each other? Textures looking ok? Right, step into
the street. Point at the floor of the second doorway and press [PgUp] to raise it
right up to the bottom of the black windows (looks better).
All right! You've got yourself a window! 

However, it still doesn't look good - it's too high up, we can't look out
comfortably. So, lower the roof and floor of the window sector until you can
easily look into the house. 

Better, but now it doesn't fit the texture on the street as neatly anymore. So
we'll use [Shift]-[Num8] to shift the wall texture down until it looks right.
Notice how you're only shifing the wall texture over the window? Each section of
a wall (separated by a point) can have its own texture, so you'll have to shift
each walls texture. Remember that you can use [.] to auto-align textures for you
(it auto-alignes all walls to the right of the one you pointed at, so shift the
texture on the leftmost wall). 

5.10.6 (Glass)

Now we only need to add some glass into the window (so we can shoot it, yaaay!).
Still in the street, point on the wall below the window and press [M]. The window
will be walled closed with the ugly gray stone texture again. Point at it and
give it the texture number 503. Voila! A glass pane!
However, the white reflections on it loks wrong. Press [T] twice to make the
window more transparent.
You can also use [F] (Flip) and [Num4] as well as [Num6] to change the appearance
of the window. (Of course, you can use these keys on any wall texture). If you
make a mistake, you can reset the wall be pressing [/].

Remember to fix both sides of the glass pane. 

Now, all we have to do is make the glass breakable: point at it and press [B]
(blocking movement) and [H] (hitscan on, meaning it can be shot).

A glass pane on the very outside doesn't look to good, though - it should be in
the exact middle of the window sector. Besides, it'll mess up the street texture
when shattered. 

So, first we'll define a line where the glass will be: in 2D mide, insert a point
in the middle of the left and right walls of the window sector. Point at the
first point and (using [Spacebar]), draw a line across to the second point. The
message 'Sector split.' will appear - the window sector is now made up of two
separate sectors, and we'll put the glass on the line dividing them.
But first, press [B] at the new line in 2D mode until it looks a normal red. Do
the same for the upper line (where our glass is right now).
Back in 3D mode, we'll remove the old glass pane by pressing [M] at it and insert
the new pane by pointing just inside the window sector and pressing [M] again.
Fix the window up using [Num4] and [Num6] and don't forget [T], [B] and [H]. 

5.10.7 (The sloped roof)

Remember we wanted to slope the ceiling of the house so it looks a bit like an
A-frame?
Well, of course each sector can only be sloped one way, so we'll have to split
the house sector (and the carpet sector!) again: 

Insert a point in the middle of each horizontal wall in the house (the house
walls and the carpet sector walls) so you get four points underneath each other.

>From the top point, draw a line to the one just below it. The 
message window will say 'Loops joined.'. Keep going: connect the two points on
the carpet sector ('Sector split.') and the lower two points ('Sector split.').

Now, still in 2D mode, we define the 'hinges' of the sloping ceiling. We'll hinge
the roof in the middle, so first point inside the carpet sector just to the left
of the new line and press [Alt]-[F]. Tis makes the selected line (the blinking
one) the first line in the sector the mouse cursor is in. Do the same for the
second carpet sector (the one on the right) and with both house sectors.

Do the same for the second carpet sector (the one on the right) and with both
house sectors.

Now switch to 3D mode, point at the roof and press '[' and ']' to tilt the
ceilings. (You'll have to raise the ceiling a bit - use [.] to realign the walls
afterwards).
If the ceiling tilts wrong, you've messed up the [Alt]-[F] bit. Make sure you've
selected the right line at try again. 

You can use [/] to make a ceiling straight again. 


5.11 (Trying it out)


Let's try our new level out. Place the arrow in the street and press [ScrollLock]
to set the dim red arrow which shows your starting point in the game.
Caution: if the starting point is outside a valid sector, the game will crash if
you try to run the map! 

In 2D mode, press [Esc], [Q] [Y] [Y] to exit the editor, saving your map.

Now start up Duke3D by typing
DUKE3D -map DEMP.MAP

Fun! Walk through your creation, smash the window, look about. 

However, it sure gets old fast - plain walls with no decorations, and where are
the enemies?

5.12 (Decorations)


Let's keep our decorations simple: a flowerpot in the corner, a picture on the
wall, a lamp on the ceiling and a burning barrel in the street.

First call up Build again:
BUILD DEMO.MAP (press [Enter] twice quickly) 

We find ourselves in 3D mode, at the player starting point. Walk inside the
house, point somewhere at the floor and press [S] (insert sprite).
Again, we're confronted with the ugly gray wall, this time standing upright on
the floor.

Try walking around it - note how it always faces you? Press [R] at it and see how
it changes into a flat piece of paper. You can change its heading in 2D mode by
pointing at the sprite (the small circle with the tail sticking out of it) and
pressing [<] and [>].

Back in 3D mode, press [R] at it again - now it's flat on the floor.

5.12.1 (The flower pot)

Make the sprite stand up again with [R] and press [V] to select a different
sprite (number 1025). The wall changes into a flower pot!
By the way, notice that sprite 1025 looked differently in the selection list? The
pink bits will be transparent when the sprite is used.

Now shift the flower pot into a corner: in 2D mode, make the grid a bit finer,
point at the flower (now called BOTTLE7 by the program) and move it about by
pressing and holding the left mouse button (you can shift the endpoints of walls
in the same way, btw).

All right! Now we have a flower pot in the corner of the room. Press [Tab] at it
and use [S] in 3D mode to place some more pots on the floor. They will
automatically shatter when hit. 

In 2D mode, the sprite appears pink - this means that the 'block moveemnt' flag
has been set, and you can't walk through it. If for some reason you want to allow
the player to walk through a sprite (fire, for example), press [B] at the sprite
and watch it change color.

5.12.2 (The picture)

The next sprite will be a picture on the wall. Point at the south wall and press
[S] again. The flower pot appears again, but since we placed it on a wall, it's
automatically flat already.

Use [V] to change it into sprite number 1075 - a framed picture. Use [PgUp] and
[PgDn] to position it on the wall. 

5.12.3 (A hanging lamp)

Next we'll hang a lamp from the ceiling. 

Point at the middle of the floor and press [S]. Change it into sprite number 979
(a hanging lamp).
Well, not exactly hanging yet. So point at it and press [Ctrl]-[PgUp] to move it
right up to the ceiling (yes, [Ctrl]-[PgDn] will place a sprite on the floor). 

5.12.4 (The burning barrel)

Finally, we'll place a burning barrel on the street. Walk outside and place a
sprite number 1240 somewhere on the street. Note that this sprite will
automatically animate to look like a burning barrel. If you had chosen one of the
other three animation frames (sprites 1241 to 1243), it wouldn't have worked -
the flames would appear 'frozen' (try it). 

By the way, you can remove a sprite by pointing at it and pressing [Del].
You might also want to play around with the [Num2], [Num8], Num[4], [Num[6] and
[/] keys.


5.13 (The enemy appears)


The last thing missing is the enemy.

So, go back into the house and place a sprite number 2000 in the middle of it.
Ah, a PigCop! Try walking around it - note how you're always shown the correct
side of the monster?

Place another one next to the first one, but as number 2001. This one isn't
moving, and the program calls it PIGCOPSTAYPUT (check it in 2D mode).
All monsters have a STAYPUT frame - it means that they will walk around normally,
but never change the sector they started in. Great for setting up ambushes.
It also means that our second PigCop won't dare to leave the carpet :)

Here's a cute trick: try making one of the cops transparent [T] to create a ghost
:)

Start the game up again, switch to God mode (type DNKROZ in the game) and watch
the different behaviour of the two monsters. 

Note that you can place monsters in different poses to have them start up in
them. For example, you can place a PigCop number 2045 (lying down) behind a low
wall...


5.14 (The other players)


All that's missing now is to set up the coop and DukeMatch starting positions of
the other players. You'll need seven of each (the red arrow is the eight one for
both coop and DukeMatch positions).

Simply place sprites number 1405 (called APLAYER) everywhere you want a DukeMatch
starting spot (be fair!). To differentiate the coop starting positions (which are
usually all in a bunch somewhere) from the DukeMatch spots, point at them 

in 2D mode, press [Alt]-[T], [1] and [Enter] to give them a lo- tag of 1.


5.15 (Taking it from here)


All right! Your first level!

It's still a bit simple, so read through the next chapter and play around (save
it first). The trick is to experiment as much as possible!






Chapter 6

(The BUILD Editor)


This chapter is intended as a reference to the BUILD editor, included on the CD.
A big thanks to 3DRealms for giving us the very editor they used to design their
levels! 

## I've taken most of the info in this chapter from the build docs. I hope to
extend this with lots of tips and tricks to the individual commands - so if you
know anything, let me know! 

In this chapter, I'm describing the BUILD editor V041996 from 9/23/95. Press [F1]
in 2D mode to see what version you've got. 

The program consists of two parts: 2D mode and 3D. 


6.1 (2D Mode)


2D mode is used to design the sectors and place sprites accurately, much like a
blue print.

6.1.1 (The Screen)

The screen is split into four parts:

6.1.1.1 (The map)

Most of the screen is taken in by the map. Shown on it are:

The grid	Made up of dark gray lines, the grid has 8
settings (7 magnifications and Off). All objects snap to the grid as they are
places or moved. 

Sprites	Small circles with a line indicating its facing.
At high enough magnification, they will also display a tag:
X Y NAME
where X is the hi-tag, Y the lo-tag and NAME the name of the sprite as given in
the NAMES.H file. A pink sprite is flagged as impassable.

Points	End points of lines are shown as small green
squares.

Walls	Two types of walls are possible: one-sided walls
are white, two-sided walls are red.
Two-sided walls with the 'blocking movement' bit set are shown as pink, and glass
(with the 'hitscan' flag set in addition) is a thick pink line.
A wall can also display a ractangular sign at high enough resolution, showing the
wall tags. 

Sector	A sector is bounded by walls, and is not displayed
as such (pity - DEU did a very good job of this, very useful). But if it is
tagged, you can see a sign with the tag numbers on it, same as for walls and
sprites.

Mouse	The mouse cursor is a red cross if grid locking is
on and a white one if grid locking is off. 

Observer	The observer (your position in 3D) is a white
arrow.

6.1.1.2 (The Message window)

This window shows the text 'DUKE NUKEM BUILD V041996 BUILD by Ken Silverman'
(current version from April 1996). The right part is reserved for prompts like
the Esc-menu. 

6.1.1.3 (The Data window)

The data window displays info about currently selected objects (like sectors,
walls or sprites) and can also display some help texts.

6.1.1.4 (The Info window)

The info window also consists of two parts: on the left is your current (x,y)
position in units as well as your viewing angle. On the right it shows how many
resources you have used up already. Interesting, because it shows you the limits
imposed by the Build engine: you can have a maximum of 1024 sectors, 8192 walls
and 4096 sprites.

6.1.2 (The mouse)

Most of the time you'll have your right hand on the mouse and the left one on the
keyboard.

6.1.2.1 (Move)

Moves the mouse cursor (really!). Is also used to shape the selection box
together with the [RightShift] and [RightAlt] keys. 

6.1.2.2 (Left button)

Used to drag a selected object or group of objects. 

6.1.2.3 (Right button)

Places the player at the mouse position. 

6.1.3 (The keyboard)

All keys named NumXXX are keys from the numeric keypad. 

6.1.3.1 (Esc)

Pops up the Esc-menu: (N)ew, (L)oad, (S)ave, save (A)s, (Q)uit. 

New	starts a new map (after confirming with you).

(L)oad	pops up a selection list of all .MAP files
(Caution! It doesn't ask you if you're sure, so save first before loading a new
level. If necessary, abort the selection process with [Esc]).

(S)ave	saves the map under its current name, overwriting
any map with the same name on the disk without comment. New, unnamed levels are
automatically called NEWBOARD.MAP.

save (A)s	asks you for a name to save the current map under.
All new maps should first be given a name this way. Beware that it will overwrite
any map with the same name without comment.

(Q)uit	will quit the editor after confirming with you and
offering to save your current work.

6.1.3.2 (Cursor keys)

Move the player position. The player is clipped, so use the right mouse button to
move if necessary.

6.1.3.3 (NumIns and NumDel)

These keys will pan the player position sideways. 

6.1.3.4 (Spacebar)

Draw new sectors. The program is bright enough to know when you're drawing a new
sector or adding to an existing one. Use [Backspace] to back up to the last point
plotted. 

6.1.3.5 (NumEnter)

Toggles between 2D and 3D mode.

6.1.3.6 *RightShift*

Used together with the mouse to select a rectangular region of objects (points
and sprites) to move. Press again to deselect. 

Interesting note: if you drag a sprite normally (using the left mouse button),
the sprite will be clipped, meaning it can't pass over high walls, into door
sectors, etc. But if you select it with the right shift key first, you can move
it anywhere you want. Real useful trick, this.

6.1.3.7 (Control-RightShift)

Select all points of a sector, which can them be dragged with the left mouse key
and stamped with [Ins].

6.1.3.8 (RightAlt)

Use together with the mouse to select all sectors within a rectangular area. The
selected sectors can then be dragged with the mouse and stamped with [Ins] or you
can rotate them with [<] and [>].
If you load a new map right after selecting sectors, you can even stemp the old
sectors into the new map.

6.1.3.9 (Ins)

Insert something. If some objects are selected, it will insert these (points or
sectors) - don't forget to drag them afterwards. If nothing is selected, it will
insert a point on the current line.

6.1.3.10 (Del)

Delete a sprite.

6.1.3.11 *RightControl-Del*

Delete the current sector (the one the white arrow is in). 

6.1.3.12 (A and Z)

Zoom in and out.

6.1.3.13 (G)

Change the grid size.

6.1.3.14 (L)

Toggle grid locking.
The color of the mouse cursor chages accordingly: red for locking on, white for
off.

6.1.3.15 (J)

Join two neighboring sectors. Press [J] in the first sector and again in the
adjacent one. The adjacent one will take on all settings (ceiling height,
textures, etc) of the first sector. 

6.1.3.16 (Alt-S)

Turn an inner sector into player space (used to create sectors within sectors).

6.1.3.17 (S)

Insert a sprite. You can store a sprite in 3D mode by pressing [Tab] on it,
making it the default sprite to insert. 

6.1.3.18 (B)

Toggle the 'block movement' flag on a line or sprite. 

6.1.3.19 *C*

Turn a line into a circle - move the mouse to change the circle. 

[+] [-]	changes the number of points on the circle.

[Spacebar]	draws the circle.

[C]	aborts it.

6.1.3.20 (T)

Set the sector lo-tag.

6.1.3.21 (H)

Set the sector hi-tag.

6.1.3.22 (Alt-T)

Set the sprite or wall lo-tag.

6.1.3.23 (Alt-H)

Set the sprite or wall hi-tag.

6.1.3.24 (E)

Change a sprites status list number.
## Anybody know what this does, exactly? What's a status list number?

6.1.3.25 (< and >)

Change the angle of a sprite or selected sector. Use [RightAlt] to select
sectors.

6.1.3.26 (Shift-< and Shift->)

Change the angle of the sprite or selected sector in smaller increments.

6.1.3.27 ([ ])

This allows you to search backwards or forwards for a certain sector or wall.
Select the tags to look for via [F8] (for walls) or [F9] (for sectors) and press
'[' to search backwards and ']' to search forwards.
If the sector or wall is found, the map will jump to it, placing the cursor at
one of the points (probably the first one of the sector/wall).

6.1.3.28 ('-M)

Pressing ['] and [M] together brings up a memory status window. Caution: I don't
recommend using this option as BUILD gets unstable afterwards and will crash upon
switching to 3D mode. 

Total Tiles Bytes taken up by all selected tiles? 

Total Sprites Bytes taken up by all selected sprites? 

Total Actors Bytes taken up by all actors (now what's that?) 

Total Memory Bytes needed for this map?

Total W/Duke Bytes needed to run this map together with Duke3D? 

6.1.3.29 ('-3)

Pressing ['] and [3] together changes the tag display mode (very useful feature,
this):

0: No tags displayed
1: Show sector tags only
2: Show wall tags only
3: Show sprite tags only
4: Show all tags
5: Show item tags only
6: Show tags of current sprite only

6.1.3.30 (F1)

Shows a short help screen as well as the version number of BUILD (currently
V041996).
## According to this helpscreen, [']-[1], [~], and [']-[9] should be doing
something as well but they don't - anybody with more luck than me?

6.1.3.31 (F2)

Increments the players x-position by one unit. Seems like a useless feature and
my guess is that [F1] decremented the players position before 3DRealms turned it
into a help button. 

6.1.3.32 (F3)

Decrements the players y-position by one unit. 

6.1.3.33 (F4)

Increments the players y-position by one unit. 

6.1.3.34 (F5)

If you are in a valid sector, this option will show some general info about your
map, like its name and the number of items in it (the blue numbers mean the
number of each item only found in multiplayer mode).

This is particularily interesting if you want to make sure that you've got a good
weapon mix with enough ammo and goodies. 

6.1.3.35 (F6)

If a sprite is selected, this will show a small help screen listing the numbers
of all (?) sector effectors and their function.

Otherwise, some more really useful info about your map is shown, this time
containing the next free tag and the amount of monsters placed.

6.1.3.36 (F7)

This shows a help screen listing all (?) sector tags with their function.

6.1.3.37 *F8*

Allows you to search for a wall with specific hi- and lo-tags. 

If a sprite is highlighted, you can search for the sprite via its tags, too.
'[' and ']' start the search.

6.1.3.38 (F9)

As [F8], but you can search for a sector instead. 

6.1.3.39 (F10)

Increments the angle of the player by one unit. Looks like a singularily useless
function.

6.1.3.40 (F11)

Displays the message 'Grabbed wall sprite 0' - ?? ## 

6.1.3.41 (F12)

Takes a .PCX screen shot.
Turn off the Grid before you press [F12], as it isn't shown properly.

6.1.3.42 (TAB)

Show info on the current sector:

Sector	The number of the sector.

Firstwall	The number of the first wall (set with [Alt]-[F]).
Interesting because:

* The floor/ceiling texture orientates itself 
on it.

* The floor/ceiling uses this line as a hinge 
when tilting.

* Blastable walls lower the ceiling until the 
first lines touch - if your wall has
triangular holes in it, this may be why.

Numberofwalls The number of walls bounding this sector. 

Firstsprite The number of the first sprite in ths sector. 
Hmmm...anybody know if the first sprite is of similar importance as the first
wall? ## 

Tags	The hi and lo tags of the sector (also shown in
hex).
Change with [H] and [T].

Extra	Describes as 'used by the game programer only'.
Usually set to -1; anybody got details? ## 

Visibility	The visibility in this sector, usually set to 0.

Pixel height The height of the room in pixels. 
Each [PgUp] or [PgDn] in 3D mode changes this by 4 (= 256 units).

Ceiling Flags The ceiling flag, shown in hex. 

The flags (with the keys used to change them in 3D) are as follows (the rightmost
bit being number 0):
0: Set if parallaxing [P]
1: Set if tilted '[',']'
2: Set if x and y are swapped [F]
3: Set if texture size is halved [E]
4: Set if x-flipped [F]
5: Set if y-flipped [F]
6: Set if texture aligned with first sector wall [Alt-F]

(X,Y) pan	The x,y amount the ceiling has been panned. Use
the cursor keys for this.

Shade byte	The amount of shade on the ceiling.
0 is normal, < 0 is lighter, > 0 is darker. 

Z-coordinate The z-coodinate of the ceiling. 
Smaller means higher. Each [PgUp] or [PgDn] in 3D mode changes this by 1024 units
(= 4 pixel). 

Tile number The number of the ceiling texture. 
Use [V] to change.

Ceiling heinum Amount of tilt.

Palookup number
Color palette to use (0 is normal).

6.1.3.43 (Alt-TAB)

Show info on the current wall or sprite. 

The wall info is as follows:

Wall	Number of the wall (note that red lines are
actually two walls, so it's important which sector you're in when pressing
[Alt]-[TAB]).

X-coordinate X-coordinate of left side of wall. 

Y-coordinate Y-coordinate of left side of wall. 

Point2	Number of the next wall to the right in the same
sector.

Sector	Sector the wall is in.

Tags	The hi and lo tags for this wall, also shown in
hex.
## Anybody got a list of interesting tag numbers? 

Flags	The flag (in hex) of this wall.
The flags (together with the keys to change them) are as follows (0 is on the
very right): 0: Set if wall blocks movement [B]
1: Set if wall has two different textures [2] 2: Set if tile is aligned to
ceiling (0 if floor) 3: Set if x-flipped [F]
4: Set if masking wall (like window) [M] 5: Set if 1-way wall [1]
6: Set if hitscan enabled [H]
7: Set if transparent [T]
8: Set if y-flipped [F]
9: Set if reverse-transparent (?) [T]

Shade	The amount of shade on the walls (smaller is
brighter).
Use [+] and [-] to change.

(X,Y) repeat Used to stretch textures.
Use the [NumCursor] keys to change this, press [/] to undo any accidential
changes.

(X,Y) pan	Used to move textures.
Use the [Cursorkeys] for this.

Tile number The texture number used on this wall. Use [V] to 
set this.

OverTile number
The extra texture number for 1-way walls and masked walls.
## I'm not sure how this is supposed to work. On a wall with three textures (a
window with glass on the maskable wall as well as two different textures above
and below it) it stayed 0. 

Nextsector	The number of the sector on the other side of the
wall (-1 if there is none).

Nextwall	Number of the wall on the other side (only
interesting if the wall is two-sided, otherwise it's -1)

Extra	Usually -1, and described as 'used by the game
programmer only'. Which makes it irresistable :) ## Anybody got more info?

Wall length Wall length in pixels. The grid at maximum size 
has a square width of 64 pixels.

Pixel height Height of the wall in pixels. 

6.1.3.44 (ScrollLock)

Set the starting position to the current players position. Caution: if this
position is set to an invalid position (outside a sector), the game will crash
when you try to run this map. 

6.1.3.45 (Ctrl-T)

Toggle tag box display on the sprites, walls and sectors. 

6.1.3.46 (Enter)

Displays the text 'Highlighted line pointers checked'. ## Anybody know what this
means? It sure doesn't protect you from invalid lines...


6.2 (3D Mode)


3D mode is where it's at! Here you stand right in your map and can change
anything: floor/ceiling height, textures, etc. It's where you'll be spending most
of your time. This mode is also what really makes BUILD stand out from other
editors like DEU - you can spend a long time in here, fixing up your level to
look just right. No more guessing around with the alignment, easily set the
height of your rooms, see what everything looks like before you fire up the game
itself...lovely.

6.2.1 (The screen)

The screen shows the map as viewed from the players position. Two things deserve
special note:

FPS meter	On the top left the current fps rate is shown.
Keep an eye on tis while editing and don't make a room so complex that the fps
drops too low! Also remember that others may be using a slower computer than you,
so lets keep the fps high, ok? 

Mouse	Yes, the little white cross is the mouse pointer,
no it doesn't change color according to the 'grid locked' status, and yes, you
move it with the mouse :)

Also, sprites displayed in blue (palette 1, change via [Alt]-[P]) are only
available in multiplayer mode.

6.2.2 (The mouse)

Again, you'll be spending your time with the right hand on the mouse and the left
on the keyboard.

6.2.2.1 (Move)

Believe it or not, but moving the mouse actually changes the mouse cursors
position on the screen, enabling you to point at anything you can see! Yes!

6.2.2.2 (Left button)

Pointing the mouse at something, pressing the left mouse button and keeping it
pressed keeps that object selected, even if the mouse pointer somehow strays from
it (for example, when changing the height of an object).

6.2.2.3 *Right button*

## Anybody know if the right mouse button serves any useful function? I know of
none (in 3D mode!).

6.2.3 (The keyboard)

Lots of funny buttons for you to press!

6.2.3.1 (Cursor keys)

Moves the player around, just like in the game. Press [LeftShift] to speed up
your movement.

6.2.3.2 (CapsLock)
This key cycles through the three different movement modes available to you:

Game Mode	Here you walk around like the player in the game.
Use [A] to jump and [Z] to duck.

Height Lock In this mode, you're always at the same height 
above the floor of the current sector. Use [A] and [Z] to raise and lower
yourself.

Float Mode	You're completely unaffected by the floor and can
smoothly change your height with the [A] and [Z] keys.

6.2.3.3 (PgUp and PgDn)

Allow you to change the height of the object you're pointing at: raise or lower
ceilings, floors and sprites. If you point at a wall, the corresponding ceiling
will change height.

Press [Ctrl]-[PgUp]/[PgDn] to move a sprite exactly to the ceiling/floor.

6.2.3.4 (V)

Change the selected tile or sprite.

6.2.3.5 (Alt-V)

This is supposed to change something called a 'Groudraw height map'. To me it
just looks like it's selecting a tile as well. ## Anybody knows what's going on
here?

6.2.3.6 (NumCursor keys)

On a wall, these keys change the size of the texture. This means you're able to
re-use textures for many different things, scaling them exactly as needed
(perhaps showing only a certain part). 

Using these keys on a sprite will change the size of the sprite. Very useful
indeed.

Finally, the textures on a ceiling or floor can only be resized using [E], so
these keys just scroll the texture, enabling you to align it accurately.

6.2.3.7 (Shift-NumCursor keys)

Usable only on walls and ceiling/floors (sprites will ignore the shift key and
resize instead), these keys shift the offset of the texture.
In effect you're moving the texture without resizing it. 

6.2.3.8 (/)

Used to reset a texture or sprite to normal (undoes the effects of
[Shift]-[NumCursor] and [NumCursor]). 

6.2.3.9 (.)

This key will try to auto-align all walls to the right of the selected wall if
they are using the same texture. Caution: this has caused my system to crash on
several occasions - save before you try this!

6.2.3.10 (F)

Flips the selected floor/ceiling 8 possible ways. Walls and sprites can only be
flipped 4 ways.

6.2.3.11 (Alt-F)

Determines whether the ceiling or floor texture aligns to the first wall. This is
especially useful for tilted floors. 

6.2.3.12 (P)

Toggle parallaxing on floors or ceilings. This only works well on some textures
(like 89..96, the cityscapes). 

6.2.3.13 (G)

This is supposed to give a floor height-mapping. ## Like [Alt]-[V], this doesn't
seem to work for me. 

6.2.3.14 (E)

Toggles the tile size of floors/ceilings between normal and enlarged.

6.2.3.15 (R)

Toggle floor/ceiling tiles between relative and absolute alignment.
In absolute alignment, floor and ceiling tiles are aligned to the grid itself
(thus allowing you to align them neatly to the usual rectangular floors).

In relative alignment mode, the tiles align themselves to the first wall (set
with [Alt]-[F] in 2D mode). This is very nice for odd-shaped, rotated, or moving
sectors.

6.2.3.16 (O)

Changes the wall texture orientation. A wall texture can start either on the
floor or on the ceiling. This is particularily useful when building windows (make
sure that the wall above and below looks ok) or DOOM-type doors (make sure the
texture moves with the door).

6.2.3.17 (B)

Toggle the 'block movement' flag on a wall. Usually used for glass panes, force
fields or sector boundaries, as a one-sided wall always blocks movement anyway.

6.2.3.18 (T)

Toggle the transparency flag on a wall or sprite. There are three stages:
slightly transparent, very transparent, and opaque (normal). Of course, this only
works on two-sided walls.

Try it on monsters to create ghosts - pity it doesn't work on players >;)

6.2.3.19 (M)

Point at the floor below a sector edge and press [M] to create a maskable wall.
In effect, you're giving the sector edge a two- sided wall which is most often
used in creating glass panes. 

6.2.3.20 (Shift-M)

Make a maskable wall just like with [M], but only on one side. This way you're
able to create walls where you can only see through in one direction, for
example.

A window created this way will only show you the glass texture from one side. And
you won't be able to shoot through it from the wrong side, either: it will be
marked with floating bullet-holes, instead.
When shattering it from the visible side, the bullet holes stay in the air...

6.2.3.21 (1)

Create 1 one-way wall. Only possible on a two-sided line, this command will
create a wall which only has a texture on one side. 

Monsters can see through this wall and will attack you, walking through the wall
(if they're allowed to). 

6.2.3.22 (2)

If a wall consists of two sections (a top and a bottom one, like you find with
windows), pressing [2] will allow you to separately edit the upper and lower
texture.

6.2.3.23 (H)

Toggles the hitscan bit on a two-sided wall. If this bit is set (default is off),
the wall will react to bullets (shattering if it is glass, showing bullet holes
if it is normal). 

If you set the hitscan bit on a sprite, the sprite will block bullets even if it
doesn't block you. However, turning off the hitscan bit on a destructable sprite
(like a bottle) has no effect.

6.2.3.24 (TAB)

This remembers the current object (sprite or texture) and places it in the
buffer.
According to the Build documentation, it not only remembers the tile number,
shade and texture setup, but also the cstat. Whatever that is.

Some text appears, showing you what you have just selected: name, lo- and hi-tag,
number of times used in map (only if you point at it), and MEM (amount of low RAM
free?). If the graphic toggle is on (use [']-[G]), an image of the selected
texture is shown as well.
Press [TAB] again on the same texture to turn that display off. 

Use one of the keys below to paste the object back. Note that you have to use the
big [Enter] key, not the one at the numeric keypad:

6.2.3.25 (Enter)

Copy the selected object to whatever you're currently pointing at (meaning you
can replace sprites and textures this way). Shade and (for textures) the x-repeat
values are copied as well, while the y-repeat is modified to make the pixels
square. 

6.2.3.26 (Ctrl-Enter)

Copies the selected texture to all walls in a closed loop. Use this to change the
appearance of a whole room at once. 

6.2.3.27 (Shift-Enter)

Copy the shade value only.

6.2.3.28 (Ctrl-Shift-Enter)

This function auto-shades a sector:

Make one of the walls the lightest shade and another one the darkest one. Point
at the lightest wall and press [Ctrl]-[Shift]-[Enter] - all walls on the loop
will be smoothly shaded.

Somehow, this function never worked very well for me: wall shading is very harsh
and non-smooth, so I usually shade by hand. 

6.2.3.29 ('-ENTER)

Pressing ['] and [Enter] copies the tile only, leaving everything else
(especially the shade!) as it is.

6.2.3.30 ('-R)

Toggles the FPS display on and off.
This is only good for taking screenshots, as the FPS is one of the most important
considerations in level design. 

6.2.3.31 ('-D)

This is supposed to change the skill mode, but on my system only the text
'(something something) not found' flashes up and nothing changes - skill mode
stays at 1.

6.2.3.32 ('-W)

This toggles the sprite display between several modes: 

Display all Sprites
No Effectors (Sprites 1..10 are not displayed) No Actors (No players or monsters
are shown) None (No effectors or actors shown)

This is nice if you want to do some changes to the map without being bothered by
monster images.

6.2.3.33 ('-G)

This toggles the display of the selected texture (via [TAB]) on and off.

6.2.3.34 ('-Y)

## Listed as 'Toggle purple background', I haven't found out what it does yet.

6.2.3.35 ('-T)

Allows you to change the lo-tag of the selected object. 

6.2.3.36 (-H)

Allows you to change the hi-tag of the selected object. 

6.2.3.37 ('-S)

Allows you to directly type a shade value for the selected object.
Very nice for setting the shade on goodies to 128 (= -128, as 127 is max. shade
and you can't enter negative numbers) to make them very visible from far away.

6.2.3.38 *'-V*

Changes the visibility of a sector (how fast it darkens with distance).

6.2.3.39 ('-C)

Changes the global shade of a sector to the shade of the object currently
selected.

6.2.3.40 ('-Del)

## Sets the cstat to 0. Anybody know what a cstat is? 

6.2.3.41 (F1)

Shows a short help menu, listing the less-commonly used commands. Pres [F1] to
remove it again.

6.2.3.42 (F2)

Increments the players x-position by one unit. Seems like a useless feature and
my guess is that [F1] decremented the players position before 3DRealms turned it
into a help button. 

6.2.3.43 (F3)

Decrements the players y-position by one unit. 

6.2.3.44 (F4)

Increments the players y-position by one unit. 

6.2.3.45 (F5)

Nukes the 3D display, forcing you back to 2D. Strange function indeed :)

My guess is that the system tries to display the same text it does in 2D mode and
messes up the graphics along the way. 

6.2.3.46 (F6)

Same as [F5].

6.2.3.47 (F7)

Same as [F5].

6.2.3.48 (F8)

Same as [F5].

6.2.3.49 (F9)

Rotates the players view left a bit.

6.2.3.50 (F10)

Rotates the players view right a bit.

6.2.3.51 *F11*

Changes the gamma correction (makes the screen lighter). This is not terribly
useful, as the settings aren't saved and the gamma seems to reset when moving
between some sectors. 

6.2.3.52 (F12)

Takes a .PCX screen shot.


6.3 Typical mistakes to avoid


This section contains, in no particular order, common errors which you should
avoid:

6.3.1 Crossed lines

By this I mean bounding lines from the same sector crossing each other. While the
game will allow this, it usually looks bad. 

6.3.2 Overlaying lines

Overlaying lines very often leads to mysterious graphics glitches (a door texture
suddenly spilling onto the floor is a typical example).
Rather place the lines very close to each other (using Grid lock off).

6.3.3 *Hall Of Mirrors*

The Hall Of Mirrors (HOM) is caused by a missing texture and is only really
possible if BUILD is about to crash or you converted a DOOM map via WAD2MAP.

6.3.4 *Door side tracks*

Make sure the side tracks of doors don't move up with the door if building a
DOOM-type door. Use [O].

6.3.5 *Unaligned Textures*

Aaargh! Unaligned textures are one of the most ugly design errors around, and
BUILD makes it so easy to avoid them! Use [.] a lot, and look at all the corners
to make sure the textures fit. 

6.3.6 *Missing Player Starts*

Make sure there are at least 7 co-op and 7 DukeMatch player starts in your map
(the 8th one in each case is the normal player starting point).






Chapter 7

[How to...]


This chapter is intended as a cookbook: how to create different effects.
If you find out something new, please let me know and I'll add it here.


7.1 [Extracting the original maps]


It's a very good idea to extract the original maps for Duke3D and see how
3DRealms did things. It has the additional effect of making you realize just how
much work is in these levels :) 

The command
KEXTRACT DUKE3D.GRP *.MAP
will extract all map files from Duke's group file. 


7.2 [Abbreviations]


In order to easily describe tags, sector effectors and the like, I use some
abbreviations:

Bomb	A sprite with the tile number 1247 (yellow
gasbottle), x-shrunken as narrow as possible. It is intangible to the player, but
blows up when triggered.

[x,y]	The tags of a sprite or wall: x is the hi-tag, y
the lo-tag.
Example: [0,34] describes a hi-tag of 0 and a lo- tag of 34.

(x)	Tile number (refers to sprites, too).
Example: (621) is the camera sprite.

Controller	A special sprite (tile numbers 1..10) which is not
shown at game time and controls the environment in some way:

S	Sector effector
Example: S [100,256] means to insert a Sector effector with the hi-tag 100 and
the lo-tag 256. 

A	Activator

T	Touchplate

L	Locked activator

M	Music and SFX

L+	Locator

C	Cycler

D	Master switch

R	Respawn

Sp	Speed


7.3 *Player starting points*


Player starting points are marked by sprite number 1405. You'll need to place at
least 7 players (the player start position is automatically included, so you
don't have to set a sprite there specifically for it).

Dukematch starting points have no tags.

Coop starting points have the tag [0,1]. 

7.3.1 *Notes*

* As far as I know, you can place any amount of dukematch 
starting points.
## Anybody knows what happens with too many coop starting points?


7.4 [Glass panes]


Glass panes are simply two-sided walls maskable walls (created by pointing on the
floor in front of a two-sided line and pressing [M]) with the 'block movement'
[B] and 'hitscan' [H] flags set. The texture has to be glass (503).


7.5 (Doorways)


A doorway is nothing but a sector connecting two other sectors. Simply lower the
roof a bit, align the textures (use [O] and [.]) and you're ready to go.

7.5.0.1 [Notes]

* You can make arching doorways by splitting the doorway 
into several sectors and tilting the roof or even the floor.

7.6 [Windows]


A window is simply a sector with a raised floor and a lowered roof which has been
inserted into a normal wall. 

Follow these steps to insert a window into a standard wall (made up of one-sided
walls):

* We'll assume the wall goes from east to west. 

* In 2D mode, split each of the lines making up the wall 
twice where you want the window to be, forming a rectangle of points.

* Connect these rectangles with lines; a new sector will be 
created. This is your window sector.

* Switch to 3D mode. Raise the floor a bit and lower the 
roof of the window sector until the window looks about right.

* If you want, insert a glass pane in the window sector. 
It'll look especially good if you split the window sector, adding the glass in
the exact middle of the window sector instead of on the edge.

* Align the textures. You can auto-align by pointing to the 
left-most wall and pressing [.].


7.7 *Air ducts*


Air ducts are just sprites in fron of holes in the wall. They will break
automatically.

7.7.1 *Notes*

* Useful sprites are 407 (rotating fan) and 595 (metal 
grate).

* Make the duct itself nice and narrow, about as wide as the 
grid at maximum size (1024 units or 256 pixels). 

* For the duct inside, you can use the textures 342 and 343. 
Use 341 for a hole broken in the duct.

* If the above textures are used, the air duct sound is 
created automatically.


7.8 [Angled surfaces]


To tilt a sector surface (roof or ceiling), point at it and press the '[' and ']'
keys.

7.8.1 *Notes*

* The surfaces will always use the first line of the sector 
as hinge. To set the first line, point at it in 2D mode and press Alt-[F].

* To undo your changes, press [/].

* Use RightShift-'[' or ']' for small changes and 
LeftShift-'[' or ']' for very small changes. 


7.9 Secret places


To mark a sector as secret, just tag it [0,32767]. A player will be credited for
finding it as soon as the sector is entered. 


7.10 [Multiplayer sprites]


To make an object appear only in multiplayer (coop or DM) play, use Alt-P to give
it a palette of 1.


7.11 [Level-end button]


Also called the nukebutton, this sprite (142) is used to end the level.
Tag it [0,x], where x can be:

32767	End level, go to status screen and then on to the
next level.

1..11	End level, go to level 1..11
(eg. [0,10] would take the player to the (secret) level 10).

7.11.1 [Notes]

* To get the secret-level color on the nukebutton, set its 
palette to 14.


7.12 [Level-end sector]


Tag a sector [0,65535] to end the level when a player enters this sector.


7.13 Cameras


You can place cameras around the map, which will relay an image to one or more
viewscreens.

7.13.1 *Setup*

The security network consists of three objects: 

Channels	A channel transports the video data from the
camera(s) to the viewscreens. It is just a number. 

Cameras	(621) [Mobility,Channel]
They have to be sprites, and can be placed anywhere in a room, facing in any
direction. Using the lo-tag, you can even set the camera mobility: higher numbers
allow the camera to move through a wider arc.
Some example numbers:
0: Immobile
128: Very jerky (too short) - not recommended 256: Normal panning

Viewscreens (502) [Channel,0]
Viewscreens have to be sprites, too.

7.13.2 *Notes*

* The camera shade controls the down-angle: 0 is horizontal, 
-80 is most common, -128 is maximum down. 

* If several cameras share a channel, the viewscreen 
connected to this channel can cycle through all connected camera views.

* It is advisable to hide the viewscreen behind armored 
glass (663), to cause the well-known purple circles when it's being shot at.

* Mobile cameras shouldn't be flipped, as the animation 
isn't flipped as well.

* The angle of the camera should point into the iddle of the 
desired panning arc. The arc angle is easily calculated: 90x = 512.


7.14 *Demo cameras*


Demo cameras can be placed anywhere and will automatically film duke from the
outside when recording a demo. Neat. 

7.14.1 *Setup*

The camera is just an S[ViewDistance,27]. Don't use the sprite itself.


7.15 Blastable walls (user control)


Such walls can be blown up by detonating something close to them (a pipebomb,
RPG, etc).

7.15.1 Setup

* First build the wall with the hole already in it (usually 
consisting of several sectors with angled floors and ceilings).

* In each of these sectors, place an S [Channel,13]. 
On the wall to be blasted, place a (possible semi- transparent) crack [Channel,0]
(546-549), facing the player. Fire extinguishers (916) can be used, too. 

* If you want, place bombs on both sides of the wall for 
realism [Channel,DelayUntilExplosion]. A delay of 8 is very short, while 2000
takes ages before it explodes. 

7.15.2 [Notes]

* A wall with a crack on each side will blow ok, but the 
other crack will remain hanging in mid-air. 

* Blastable walls retain no bullet holes until they blow. 

* Here the first line of a sector is important again - the 
floor and ceiling are moved together until the first wall sides touch. So if your
wall shows some triangular holes, this is where to look.

* If you give the crack a palette number of 1, it can only 
be blown in multiplayer games.

7.15.3 (Tips)

* Use texture 852 (blasted concrete) on the inside of the 
hole.

* Carefully align the wall textures. Especially the sideways 
alignment is important, as the wall looks real bad if this is not done properly -
use the [.] key.


7.16 Blastable walls (triggered)


The work just like user-controlled blastable walls, except that they can only be
blown by program control, not by the user. They are triggered by a T [0,Channel],
and you can even add a time-delay from the moment T is activated to the explosion
of the wall.

7.16.1 Setup

* First build the hole just as outlined above. 
However, you won't need to place a crack. 

* In just one of the hole sectors, add a D [Delay,Channel]. 
Delay ranges from 0 to 255, 255 being longest. 

* Place at least a bomb [Channel, Delay] in the same sector 
as D. Delay ranges from 8 (blow right away) to over 2000 (take ages, can be used
for nasty traps) with typical values being 8,16 or 32.
For realism, place some of these on both sides of the wall as well.

* Place a T [0,Channel] in any sector. It will go off as 
soon as the player enters the sector.

7.16.2 Notes

* You can blow several walls open simultaneously, but don't 
use different delays - the world shakes, but the holes only appear when the
highest-numbered D blows. 


7.17 [Conveyor Belts]


Conveyor belts are sectors which will transport any sprite on them in a certain
direction.
7.17.1 [Setup]

* S[0,24] in the conveyor belt sector, facing in the 
direction the belt should move.

* Optionally, add a Sp[0,BeltSpeed] to change the belts 
speed.

7.17.2 (Notes)

* You might have to rotate the sectors floor to make it look 
right - I've had a belt going one way and the texture scrolling another way...

* To create running water, just set the sector tag to [0,1]. 

* Typical conveyor belt tile is (1156).


7.18 [Mirrors]


Mirrors are interesting in that they require a rather large room behind the
mirror (check E1L1 for example). This room must be able to contain any part of
the room visible in the mirror, otherwise you'll get graphics glitches.

A mirror is in effect a masked wall (created by pointing on the floor in front of
a two-sided wall and pressing [M]) with the texture 560.
Then make the mirror single-sided by pointing at it and pressing [1].

Finally, point at it and press [B] and [H] to set the 'block movement' and
'hittable' flags.

7.18.1 *Notes*

* You can make the mirror unbreakable by now setting the 
'block movement' and 'hittable' flags. It will still be broken by an explosion close to it, though. 

* Mirrors have a range limit - if they're viewed from too 
far away, they'll default to showing a parallaxed sky texture.

* If the 'mirror room' is too small, weird graphic glitches 
can occur.

* If you set clipping and walk through the mirror, you: 

- will die if you leave the mirror room, 

- get stuck if you deactivate clipping, and 

- notice graphic glitches underneath the mirror 
(viewed from inside).

7.19 *Light switches*


Light switches turn the light in one or more sectors on and off ('on' is the
brightness of the S, 'off' is the original light level).

7.19.1 Setup

* Place a switch (eg 164) [0,Channel] sprite anywhere. 

* The sectors to light up need an S [Channel,12]. 

7.19.2

* You can use several switches on the same channel, they 
operate simultaneously.

* Switches work just fine if used on their own - perhaps 
this could be used by players to communicate? 

* The hitag of the switch controls the sound the switch 
makes on activation. 0 is the normal 'click', but try the others...


7.20 (Permanently rotating sector (gears)) 


You can set up a sector to keep rotating around a midpoint, like the gears in
E1L3.

7.20.1 (Setup)

First, build your sector. If the floor is to be visible, make sure that you've
set the texture alignment to 'relative' (use [R]) so it rotates with the sector.

You'll need these tags:

S	[Channel,0]
Defines a rotating sector.

S	[Channel,1]
Defines the sector rotating axis. The direction defines the rotation: up is
clockwise, down is counterclockwise.

Sp	[0,Speed]
Default rotation is rather fast, so you might want to add an Sp[0,64] for slower
movement.

M	[HearingDistance,SoundNumber]
The distance obviously depends on the size of your rotating sector - try 8000.
Good SoundNumbers to use are 87 (grinding gears) or 89 (machine at work).

7.20.2 (Notes)

* The two S must be on top of each other, as the sector will 
behave strangely otherwise. I've had gears rotating around an arbitrary midpoint
causing a HOM when moving over you. 

* M is usually placed on the pivot point, too. 

* A gear will pick you up if it sweeps towards you. To make 
pushing/squashing gears, raise the floor of the rotating sector all the way up to
the ceiling.


7.21 Doors


Ignoring simple doorways, real doors come in several flavours, consisting of one
or more moving sectors, sector tags and some controllers.
Note that all controllers must be inside the door sector(s), not right on the
edge (turn off grid locking ond place it real close to the edge, if necessary).

7.21.1 *Standard hinged*

A hinged door opens by rotation 90 degrees sideways. The door sector [0,23]
contains three special sprites: 

S	[Channel,11]
The location of the sector effector defines the rotation axis, the direction the
rotation direction:
up
counterclockwise turn
down
clockwise turn

Sp	[0,Speed]
Speed ranges from 8 (very slow) to over 1000 (real fast). ## I think you can
leave this away for a default speed, but I'm not sure about this. 

M	[Sound2,Sound1]
Sound1 is the sound number to play when the door is opened, Sound2 when it's
closed. Usually, these sounds will be the same.

7.21.1.1 *Notes*

* Take care to set the ceiling texture to 'not relative' 
using [R], otherwise it'll rotate with the door. 

* Make sure that the door doesn't rotate out of its original 
sector (for example, into a room with a higher ceiling) as the graphics will mess
up. Thus the sector containing the door sector has to be large enough.

* You can open/close several doors simultaneously (building 
double doors, for example) by allocating each door the same channel.

* Do not attatch any part of the door to any other sector, 
the whole thing will twist (creating interesting effects, btw).

* Turn off grid locking [L] to position the S as close as 
possible to the edge of the door.

7.21.2 [DOOM-type door, remote control]

This door opens by remote control (a switch) by raising the ceiling from the
floor, delays a moment, and lowers the ceiling onto the floor again, closing the
passageway. 

7.21.2.1 [Setup]

* Switches (132) [0,Channel] can be placed anywhere. Must be 
sprites.

* The door sector [0,20] contains 4 controllers: 
M [ClosedSound,MovingSound] (eg 0,167)
Sp [0,Speed] (eg 0,88)
S [OpenDelayTime,Channel]
A [0,Channel]

7.21.2.2 [Notes]

* Switches can be hidden by letting the sprites face the 
wall and adding another sprite facing the player on top of it (as done in the
toilet of E1L2 with the blowdryer). 

* If the door is half-open at game start, it will close 
automatically.

* Don't make OpenDelayTime (the time to wait after closing 
the door again) too short! A door with a value of 128 will close real quick. If
the time passes before the door has fully opened, it will malfunction (could be
used by design, though).

7.21.3 [DOOM-type door, local control]

These work in the exact same way as the remote-controlled version, but you don't
need a switch to open them - just press on the door itself.

Simply build the door as above, leaving the S and A controllers out.

7.21.4 *Sliding sideways*

While most doors simply move the floor or ceiling (aka DOOM-type doors) or
moving/rotating a sector, the sliding door is made up of one-sided walls which
are shrunk by a sector wrapped around them.
A perfect example can be found in E1L3, just to the right of your starting point.

Since I found that I'm no good at explaining this in words, allow me to use some
cheapo ASCII graphics to guide you through a step-by-step design :)

We have a doorway where we want to insert a sliding door. It shall slide into the
left wall:

---------------*................*----------------- 
|	|
|	| Key: * Point
|	|	. 2-sided wall
|	|	| 1-sided wall
|	|
|	|
|	|
---------------*................*----------------- 

We start by adding a sector inside the doorway sector: 

---------------*................*----------------- 
|	|
*...............*|
|	.|
|	.|
|	.|
*...............*|
|	|
---------------*................*----------------- 

Note that the new sector goes nearly all the way across. I usually try to avoid
overlaying unrelated lines, as they can cause ugly graphics glitches.
Give the new sector a tag of [0,25].

Next we simply extend the inner part of the left wall across, forming the door
itself:

---------------*................*----------------- 
|	|
P1 *...............*|
P2 *-------------\ .|
*.|
P3 *-------------/ .|
P4 *...............*|
|	|
---------------*................*----------------- 

The door has a triangular endpoint, you'll see why as we shift points 2 and 3
(marked as P2 and P3 above) onto the points 1 and 4 (marked as P1 and P4 in the
sketch):

---------------*................*----------------- 
| L1	|
P1/P2 *------------ ..*|
\ .|
*.|
/ .|
P3/P4 *------------...*|
| L2	|
---------------*................*----------------- 

And here's why it's triangular: so we still see a bit of the sector below; we now
insert some sector effectors into it: 

* S[Channel,15]

* M[DoneSound,MovingSound]

* Sp[0,DistanceToOpen]

If you open the door now, the lines L1 and L2 (on the left) will twist backwards.
To avoid this, move P1/P2 and P3/P4 a bit to the left, insert a point in L1 and
L2 and move this point down (or in P2s case, up) onto the line so you get this: 

---------------*................*----------------- 
| L1	|
P1/P2 *--*------------ ..*|
\ .|
*.|
/ .|
P3/P4 *--*------------...*|
| L2	|
---------------*................*----------------- 

Voila! Press against the door to open it. 

Sorry about the ugly sketches, but the above is a lot easier to understand than
the gamboozle that was here in v0.4 of the FAQ :) 

7.21.4.1 *Notes*

* A typical sliding door texture is 447. 

* Changing the heading of the sector effector produces 
interesting (and usually, buggy) results. 

7.21.5 [Star Trek door]

This door slides sideways, compressing its texture as it does so. The door is
activated by pressing against it. 

7.21.5.1 [Setup]

This door works just like the sliding door above, except that it opens all the
way :)
Let's assume your doorway goes from north to south and the star trek door thus
slides east/west:

* Create the sector containing the doorway. 

* Using horizontal lines, split this sector into three sectors. 

* Extend the doorway sectors walls into the middle sector of the doorway, forming
the doors themselves. Let the doors meet in the middle.

* Now tag the middle sector: [0,9]

* Add two sprites to the middle sector:
M[0,Sound] (eg. [0,259])
Sp[0,OpeningSpeed] (eg. [0,64])

And that's all!

7.21.5.2 (Notes)

If you extend the middle sector straight to the east and west (like the sliding
door), the door texture will be longer although part of it will be hidden. This
will make sure that you can haddly see the compressing effect while the door
opens. 

7.21.6 [Four-way door]

These doors open in both directions (up/down and left/right) at the same time
when activated.

Simply build a star trek as above, but let the floor and ceiling of the middle
sector meet in the middle and give the middle sector a tag of [0,26].

These doors look very nice indeed :)
7.21.6.1 [Notes]

* It is possible to get these doors to misbehave: try 
triggering a low, long door again while it is already opening. The roof will
start to close again while the walls are still opening.
Now the door will be difficult to navigate: as the roof opens, the walls close
and vise versa.
Of course, this can be fixed by triggering the door again in quick succession,
but it interesting to know. 

* The above bug can be used for special doors - simply 
design the walls to be open at the start, and the door will react as above.
You can get through it if you run, though. 

7.21.7 [Teeth doors]

## I've found some info on building teeth doors, but I didn't get them to work.
The BUILD docs say that teeth doors weren't tested in the game and might make
trouble in multi-play. 

7.21.8 [Auto-closing doors]

Simply add an S[DelayTime,10] in the door to auto-close. 


7.22 Shrinking sector (remote control)


This will shrink a sector (for example a curtain) by on the press of a button. ##
I haven't gotten the sector to regrow, however. 

7.22.1 [Setup]

* Place one or more switches anywhere
[ActivationSound,Channel].

* Inside the sector to shrink [0,27], place three 
controllers:
S [Channel,20] facing the movement direction. A [0,Channel]
Sp [0,Opening Speed]


7.23 *Automatic cannon*


An automatic cannon will fire an object every 5 seconds in a certain direction as
soon as it's been activated by a masterswitch.

7.23.1 *Setup*

Place an S with [0,36], marking the shot spawn shot. Aim it whereever you please.

Add an Sp[0,ObjectNumber] in the same sector. ObjectNumber is the tile number of
the object to fire from S. 

Add a D[0,TriggerChannel] in the same sector. You can hook, for example, a
T[0,TriggerChannel] anywhere to start the gun up. 

7.23.2 *Notes*

* I've found the following objects to be possible ammo: 

1360	Psionic blast.
Aimed slightly down, and has a limited
range.

1625	Laser.

1636	Spit.
Aimed slightly down, and has a very limited
range. Makes no noise at all.

1641	Freeze blast.
Always aimed at player, but has no effect on
him. Looks cool, though :)

1650	Mortar.
The mortar ball drops down at a steep angle
and explodes on impact.

2556	Shrink ray.

2605	RPG.
Will always aim at player, regardless of aim
or LOS.


7.24 *Lethal sectors*


To make a sector instantly lethal to the player (even in God mode), parallax
BIGORBIT as the ceiling. 


7.25 *Earthquakes*


Earthquakes have three effects:

* The screen shakes for about 4 seconds and the earthquake 
sound is played.

* Sectors can tilt.

* All SE[0,33] on the whole map spawn rocks and debris. 

7.25.1 *Setup*

Place an S[0,2] on every sector to tilt. Place an D[0,TriggerChannel] in the same
sector. If you want, place S[0,33] anywhere on the map. 

Earthquakes have to be triggered, for example with a T[0,TriggerChannel]
anywhere.

7.25.2 *Notes*

* To tilt sectors, they have to be tilted on the map by a 
maximum of 4 clicks (you can tilt more, but it won't have any effect). Such
sectors are shown flat at startup. 

* You can put S[0,33] anywhere - they are triggered by any 
earthquake on the map. Try putting them slightly under the floor, or high in the
air for special effects. 

* The build docs claim that a sector will move in the S[0,2] 
direction during an earthquake, but I've never seen that. 


7.26 [Elevators]


Elevators come in two kinds: those where just the floor moves (open elevator) and
those where the ceiling moves as well (closed elevator).

Both rely totally on sector tags: except for the sound, no controllers are used.

7.26.1 [Setup]

An elevator is simply a sector that moves from the nearest low floor to the
nearest high floor. Thus the only important thing really is setting the floor
heights of the adjacent sectors properly.

Tag the sector according to the desired elevator type: 

[0,16]	Open elevator

[0,18]	Closed elevator

7.26.2 *Notes*

* You can set an elevator at the top or the bottom to start 
with, it doesn't make a difference. You can even set it at half-way.

* Elevators must be the right size. If the elevator seems to 
go on forever, the ceiling of the first room is too high - try fiddling with this
or pressing [SpaceBar] in the game to reverse the elevators direction.

* There are two more sector tags available to elevators: 
[0,17] (open elevator) and [0,19] (closed elevator). They're supposed to control
the starting position of the elevator, but _you_ do that already simply by
placing the elevator at the desired starting height. ## Anybody know what's going
on?


7.27 *Remote-controlled Elevators*


Remote-controlled elevators are just like ordinary elevators, except that they're
operated via a switch somewhere (or several switches, of course).

7.27.1 *Setup*

To turn an ordinary elevator into a remote-controlled one, just add an
A[Channel,0] in the elevator sector and place switches tagged [Channel,0]
anywhere.

7.28 Teleporters


Teleporters move players instantly between any two points. 

7.28.1 Setup

Teleporters are not sectors, just sector effectors. They do need the floor tile
626, though.
S [Channel,7], facing is the same the arriving player should face.

7.28.2 *Notes*

* A teleporter without a floor tile 626 only act as 
receivers.

* A single teleporter without a destination will kill the 
player.

* If the S is off the ground, the teleporter is silent - 
useful for transporting players around the map without telling them about it (see
E1L1, falling down the airduct, as an example).

* When usgin more than two teleporters on the same channel, 
you always land on the teleporter with the lowest sprite number. If teleporting
from the lowest sprite number, you end u on the next-highest one.

* Teleporters don't work if you fly over them. 

* Don't create a teleport sector with two of the walls being 
masked, blocked and hitable. It messes up. 

* ## I've had strange effects when firing rockets into two 
teleporters set up in a line - the rocket reappeared _behind_ me, angled slightly
to the right (thankfully :) Any ideas?


7.29 Swimming pools


Swimming pools allow the player to jump into the water and dive around under the
water surface.

7.29.1 Setup

A swimming pools consists of at least two sectors: one is the room above the
water, one is the room below it. An teleporter secretly moves the player (and any
other objects, like pipebombs) between the levels as required.
The sectors sharing the water surface have to be the exact same size and shape
(of course).
The teleporter connecting them needs a unique channel number. 

Above-water sector
[0,1]
S [Channel,7]

Below-water sector
[0,2]
S [Channel,7]
7.29.2 *Notes*

* The floor/ceiling types for the water surface don't matter 
- all objects will always be transported correctly, water will splash, etc.
This allows you to generate hidden traps, mud, etc. 

* If you split a pool into several sectors (for example in 
order to create a pool with a shallow and a deep end), you have to split the
above-water sector as well and add a sector effector in each new sector, each
with it's own channel.

* Interesting things happen if the S is not exactly on the 
floor (use [Ctrl]-[PgDn]).

* Don't place a toilet underwater. While Duke can use it, he 
won't be able to surface anymore afterwards (bug). 

7.29.3 Tips

* Nothing to stop you from adding sector to the below-water 
sector, forming an underwater tunnel leading somewhere else; perhaps even
surfacing in a different pool. 


7.30 *The Grapplers*


Grapplers are hooks descending from the ceiling which will pick up objects
(including players), transport them somewhere else and drop them off again.

7.30.1 *Setup*

* Add a crane pole [Channel,0] (1221) at the place where 
something is to be picked off. Place it in its own sector, as the crane will pick
up anything that moves into this sector.

* Place the crane itself [Channel,0] (1222) at the 
destination point.

7.30.2 *Tips*

* Grapplers don't pick up everything - I'm still fiddling 
around to try what is actually transported. Players are, as are monster corspes.

* As the crane move across the ciling, it's a good idea to 
place some kind of raised texture there (353 works well). 


7.31 *Overlapping sectors*


While DOOM was 2.5D because of its strictly 2D map, Duke3D is 2.75D: while the
data structure allows you to design several sectors over each other, the graphic
engine can't display more than one ceiling and one floor over each other at a
time. 

This means you can't:

* Build a real bridge.
* Build two windows over each other.

* Build a house missing a wall, showing several floors over 
each other.

However, you can:

* Build a house where you can actually walk on the roof (as 
long as the house doesn't have windows). 

* Build corridors crossing over and under each other. 

* Build a house with two stories above each other, as long 
as the windows are on opposite sides of the house (and facing into different
sectors).

Building overlapping sector is easy: Just draw the first sector, move floor and
ceiling where you want them, then draw another sector overlapping the first one.
Try it! 

7.31.1 *Notes*

* Two overlapping sectors cannot share a double-sided wall, 
but you can connect them with a separate sector (for example, a sloping tunnel or
an elevator). 

* Don't use overlapping sectors unless you have to! Editing 
them is very little fun indeed, as the 2D editor has trouble differentating
between the sectors and it's hard joining sectors, etc.

* Note that you can build real 3D floors (walkable above and 
below) by using sprites rotated flat as floor (set the 'blocking' flag). It's
hard work, though - see the secton on bridges.

* Be careful when building overlapping sectors - monsters 
can get confused if theres somebody else in the overlapping room, and the sound
will come from there as well. Use it sparingly.


7.32 (Hiding switches)


To hide a switch, simply turn its facing towards the wall. 

It is advisable to place a different sprite facing the player over it, so he
knows where to press (unless you _really_ want to hide it).


7.33 (Bridges and Shelves)


We actually cheat a bit in order to build a bridge: it's made up of sprites!
Take the sprite, rotate it flat to the floor, mark it as 'blocks movement' and
then raise it into the air - you'll be able to walk on and underneath it.

So far, I have found two typical bridge sprites, but any sprite will work:

513	Stone bridge, as found in E1L1.

609	Metal bridge with holes in it, found in E1L6.

7.33.1 *Notes*

* Building a solid-looking bridge (one having width) 
actually takes some time, as you have to mess around with the side walls too
(also sprites) which can take ages. 

* It's possible to make a bridge droppable (try using a 
pipebomb on the bridge in E1L1) by tagging the sprites [Channel,0].
Bridges with the same channel with collapse simultaneously. I've tried channels
254 and 255 with good results.

* Keep in mind that the visible overlapping of sprites is 
calculated by looking at the sprite center. Thus if you place several small
sprites (bottles) on a single large sprite (a wooden board), the board will
overlap some bottles when viewed diagonally.
Thus you should build larger objects of several small sprites.

* It's perfectly possible to create a multilevel building 
out of nothing but sprites. It's a hell of a job, however. 


7.34 *Minibosses*


In episodes two and three, the boss from episode one makes a comeback, but in a
'light' version: he's smaller, more easily killed and the level doesn't end when
he's dead. 

To create such a boss, just give him (2630) the palette number 21.

7.34.1 *Notes*

* As far as I know, it's not possible to spawn an enemy with 
a palette different to 0, so it seems that we can't spawn minibosses.

* No other minibosses are defined in the .CON files, thus I 
don't think that this trick also works on the other two bosses.


7.35 {Morphing ramps}


7.36 *Vehicles*


Vehicles (simply a sector with a raised floor, a lowered roof or both) can be set
up to travel from their original position to a pre-determined closed path, which
they will follow. 

7.36.1 Setup

* The vehicle sector requires an S [0,6]. The position of 
this controller determines the rotation center when turning, and its direction
the facing of the vehicle. 

* Mark the route with several L+ [Pause,VisitingOrder]. 
A Pause of 0 means smooth movement, a 1 means a short pause at the _next_ L+.
The controllers are visited in their VisitingOrder, starting from 0.

* Use [R] on the vehicles floor texture to make it move with 
the vehicle.

7.36.2 *Notes*

* The vehicle must start in the same sector as its route, as 
the game will refuse to run otherwise. Thus you can't, for example, cause a car
to come out of a low garage and circle around outside afterwards.

* You can have several vehicles following the same route. 

* You can also design a vehicle using several sectors, but 
they will rotate individually at each L+. Rather use a 'bounding' sector,
containing the S - see the attacking spaceship in E2L1 for an example.

* The whole route must be in one sector - you cannot move a 
vehicle through several sectors.

* You can only have one route defined per map. 

* To have sprites move with the vehicle, they must be in the 
same sector as the S[0,6].


7.37 [Attacking Vehicles]


To make a vehicle attack any visible player with rockets (like the space fighter
at the start of E2L1), just parallax the ceiling of the vehicle.

7.37.1 *Notes*

* To have a vehicle move about under an parallaxed sky 
without shooting at you, give the sky or the floor a palette (any palette except
0 will do). Palette number 3 works well.


7.38 *Two-way Vehicles*


A two way vehicle moves back and forth between two points when activated (for
example, with a key).

7.38.1 *Setup*

* The vehicle needs a tag of [0,31], an S[Channel,30] and an 
A[0,Channel].
S points in the direction of vehicle movement. * Two locaters L+[0,0] and L[0,1]
need to be placed to mark 
the stopping points of the vehicle. L[0,1] is the locator visited first by the
vehicle.

* Place one or more switches [0,Channel] anywhere, including 
on the vehicle.

7.38.2 *Notes*

* The vehicle moves off in the direction of its S. If it 
doesn't find an L+, it will keep moving forever, passing straight through the
wall.

* Vehicles don't have to start near an L+, they will move 
there on their own.

* On both locators, channels are triggered which can be used 
to automatically open dors, switch on lights, etc. The channels are Channel+1 for
the L+[0,1] and Channel+2 for the L+[0,0].
Thus if you used channel 6 for a two-way train, channel 7 would be triggered when
the train reaches the first stop. 


7.39 (Water waves)


It's possible to have the floor of a sector move up and down. Several of these
sectors in series can give the effect of a travelling water wave.

7.39.1 (Setup)

A wave sector actually changes its floor tilt value. Thus, simply define several
4-walled sector in a row, adding a single S [WaveHeight,29] in each.

7.39.2 (Notes)

* Wave sectors must be four-sided.

* The floor tilts along the first line of each sector, so 
make sure you've set it properly (use [Alt]-[F]). 

* WaveHeight ranges from 0 to 2048.


7.40 (Engine piston)


In designing machines, you often want a piston moving up and down, squashing
anything wandering underneath. 

7.40.1 (Setup)

Simply add an S [0,25] in the sector.

7.40.2 (Notes)

* This effector moves the ceiling down to the height of the 
S and back up.

* You can add an Sp or M to taste.

7.41 (Edge walls)


The end of the playing map in an outdoors setting is always a problem - how to
avoid simply using a very tall building and instead closing off with an
(impassable) low wall? 

7.41.1 *Setup*

* Build a low wall around your world.
Use any texture you like.

* Set the ceiling texture of the wall to the same as your 
main ceiling.
Usually, this will be 89 (LA).

* Parallax it.
If your main ceiling is already parallaxed, the upper part of the wall will
disappear.

* Lower the ceiling to the floor.


7.42 (Code switches)


Code switches are buttons which have to be pressed in a certain way before
activating something. An example is the 3-way dip switch used to unlock the red
gate in E1L2. 

7.42.1 (Setup)

Set up the switches anywhere, tagging them [Status,Channel]. 

Status	is the required state for activation: 0 (off) or 1
(on).

Channel	is the same for all code switches belonging
together, and is used as the lo-tag of the A or L tags activating whatever is
supposed to happen. 

7.42.2 (Notes)

* Personally, I find these boring. I just cycle through them 
in order and the door or whatever opens real quick. 

* You can place the switches all over the level, if you 
like. Not a nice thing to do :)


7.43 (The pool table)


Everybody (myself included) was very impressed with the pool table in E1L2. It's
easy to make your own, and perhaps you can use this to design other toys.
Reading this, I also realize why 3DRealms didn't answer our request for a reset
button :)

7.43.1 (Setup)

The table itself is just a table with a raised wall around it. The trick is in
the sprites used: just add balls (901 and 902) and (flat) pockets (903).
7.43.2 (Notes)

* The balls will move nicely when pushed. They will remain 
at the same height, floating through the air if necessary. 

* Use different palettes on the balls to create different 
colors.

7.43.3 *Once-only sound effects*

Often, you'll want a sound effect to be played only once when a player enters a
sector. An example is Duke talking at the beginning of E1L1.

7.43.3.1 *Setup*

Give the sector a lotag of 10000+SoundNumber. 


7.44 (Tips and tricks: New and interesting effects) 


It is often the case that users find new and interesting effects for sector
functions that the designers never thought of. If anybody finds something like
that, please let me know and I'll put it here.

7.44.1 *Ghosts*

You can make enemies transparent or even rotated (2D or messed-up flat things).
They'll still attack normally. Transparent enemies are particularily effective in
dark places. 

7.44.2 *Falling to your death?*

Scaring the player is high on anybodies list for levels. So let the player fall
down a deep shaft (aaaaarrrggh) with a teleporter hanging in the air at the
bottom, transporting him somewhere else (causing a safe landing). 

7.44.3 *Malfunctioning doors*

Doors malfunction if the closing time is too short (see the section on doors).
This can cause a nice paranoia effect. 

7.44.4 *The shrinking player*

Called the Alice In Wonderland effect, this requires you to take a long hallway
and gradually make everything bigger - the floor gets wider, the walls higher,
the sprites bigger... The opposite works as well, of course.

Problems:

* Enemies can't be resized (they're animated). 

* The map will show it all.







Chapter 8

{Programming the .CON files}






Chapter 9

(Utilities and add-ons)


9.1 (Editing utilities)


This section contains all programs which can be used in editing somehow.

9.1.1 (BUILD)

The BUILD program is currently the only Duke3D .MAP editor in existence.
Personally, I don't think that it will be replaced anytime soon :)

Documentation to it are in the file BUILDHLP.EXE (press [F2] while viewing and
give a filename to create an ASCII file instead of printing all that stuff) and
in this FAQ. 

9.1.2 (EditArt)

EditArt is also included on the Duke3D CD and allows you to change the graphics
included in Duke3D. If effect, it allows you to extract/import graphics (use
somethig else to actually edit the graphics).

You'll first have to extract the .ART files using the command KEXTRACT DUKE3D.GRP
*.ART

Watch out, though: this will create the files TILES000.ART to TILES014.ART,
taking up nearly 15MB of space on your drive. If you just want to change part of
the graphics, try extracting a single .ART file:
KEXTRACT DUKE3D.GRP TILES000.ART

Documentation to EditArt are in the Build Docs; here are just some notes:

9.1.2.1 (Changing graphics)

To extract a tile from a .ART file to a .PCX file, use [PgUp] and [PgDn] to
select the tile. You can also use [V] or [G] (Goto). 

Press [F12] to create a CAPT0000.PCX file in your directory, containing just the
tile.

Edit this tile with your favourite graphic tool. While EditArt can also edit
graphics (as the name suggests), I prefere to use something like NeoPaint or
somesuch.

Then go back into EditArt, select the tile again and press [U] to import the .PCX
file. After selecting the image, use the mouse to drag the rectangle over the
whole image (grabbing all of it) and press [Enter].

Voila! Now all you have to do is keep the changed .ART file in your Duke3D
directory, and the game will load the new graphics automatically on starting.

9.1.2.2 *Adding new graphics*

Adding new graphics is fun and easy: simply modify the TILES0014.ART file.
It contains only a single tile, called 'user art'. You can replace this and all
others in the .ART file using the above method.

User art starts at tile number 3584.

Now you can access the graphics like any other tiles in BUILD. 

9.1.2.3 (Using DOOM I graphics)

Adding DOOM graphics is less easy - here's a step-by-step account on how to do it
(there's probably an easier way, but I haven't found it yet):

* Extract TILES0014.ART from DUKE3D.GRP, as explained above. 

* Back up your PALETTE.DAT and NAMES.H files, preferably by 
copying them in their own directory (I use the same one I backup my .CON files
into).

* Convert the DOOM graphics (you'll need the original 
DOOM.WAD):
WAD2ART D:\GAMES\DOOM\DOOM.WAD
(You'll find WAD2ART in the \GOODIES\WAD2MAP directory on your Duke3D CD)
This'll take a while, but you only need to do it once. 

* You now have three new files in your directory: NAMES.H, 
PALETTE.DAT and TILES000.ART.

* Call up EditArt and select the graphics you want to 
convert (tiles start at number 462). Press [F12] to make a screendump of each.

* Rename TILES000.ART to something else in case you want to 
convert more DOOM art later. Best to place it in its own directory, together with
the new NAMES.H and PALETTE.DAT. 

* Restore your original NAMES.H and PALETTE.DAT files. 

* Call up EditArt, select an empty tile and import the DOOM 
.PCX screens as explained in 'Adding New Graphics' above. 

* The sprites are going to need a fair amount of retouching. 

9.1.2.4 *General notes*

* All files must be 320x200x256. So even if you have an 
64x64 tile, you'll have to stamp it into a 320x200 image to import it properly.

* If one graphics format doesn't work for you, try another 
one. Personally, I have the least problems using BMP. 

* Tiles with a 2^n size (like 16, 32, 64, 128, 256) seem to 
make the least problems when importing.

* Note possible palette problems. While EditArt can convert 
a palette for you, it usually sucks, so do it yourself before loading the image.

9.1.3 (Wad2Map utilities)

The Wad2Map programs (included on the Duke3D CD) allows you to convert your DOOM
.WAD pages to .MAP format, as well as converting the graphics.
You will need the original DOOM.WAD file (called an IWAD file). 

I very highly recommend copying the WAD2EXE directory into its own subdirectory
on your hard drive, as you'll be overwriting some of your files (PALETTE.DAT and
NAMES.H) from Duke3D otherwise.
In any case, make a backup of your original PALETTE.DAT and NAMES.H files.

The utilities consist of two parts:

9.1.3.1 (WAD2ART)

Converts the DOOM textures (I've only tried this with DOOM I so far) to TILE*.ART
format.

Usage:
WAD2ART D:\GAMES\DOOM\DOOM.WAD
(or wherever your DOOM.WAD file is).

This will create three files in your current directory: 

TILES000.ART A huge file containing all the DOOM graphics. 

NAMES.H	The names of all the new tiles.

PALETTE.DAT The original DOOM palette.

## Does anybody know how to renumber tiles? I would love to simply rename
TILES000.ART to TILES0014.ART and take it from there - if I do that right now,
all the textures at the beginning are overwritten :(

9.1.3.2 (WAD2MAP)

Here's what we all want: a program to automatically convert the DOOM maps to
Duke3D maps!

Unfortunately, the system crashes when trying to convert a PWAD (add-on WAD file)
for DOOM. We get around this by using DEU (Doom Editing Utility) or a similar
tool to change the first level of the original DOOM (the IWAD) to the PWAD. To
find out how to do this, read the DEU docs.
There are two ways to make a .MAP from a .WAD: with conversion (trying to convert
the DOOM walls and objects to Duke3D walls and objects - the recommended method)
or without conversion (for those brave souls who want to try to run everything on
DOOM graphics and can face reprogramming every single sprite). 

With conversion:
WAD2MAP D:\GAMES\DOOM\DOOM.WAD E1M1 DUKE.TXT 

Without conversion:
WAD2MAP D:\GAMES\DOOM\DOOM.WAD E1M1

The DUKE.TXT file is an ASCII file listing the things to be converted. You're
very welcome to mess around in it and try to improve it. If you create a perfect
one, let me know! 

Note that there's still plenty of work to be done on a fully converted .WAD.
You'll have to load it into BUILD and check every single object, sector, texture
(the HOM is back!) and wall. I've had some walls crash on me after conversion,
and I haven't yet found out why - seems to be caused by sprites hanging about in
midair.

If you did the WAD->MAP without conversion, you'll have to use DOOMs PALETTE.DAT
(automagically created for you) _and_ you'll have a lot of work in front of you:
not only do none of the doors etc work, but you'll have to shift the graphics for
the sprites as well.
But you'll be able to play DOOM maps with DOOM textures in Duke3D (wheeee).


9.2 {Data files}


9.2.1 {Graphics}

9.2.2 {VOC files (Sounds)}

9.2.3 {MID files (Music)}

9.2.4 {.CON hacks}

9.2.5 {Demos (Recordings)}

9.2.6 *New levels*

This section will contain levels of particular quality and interest (for example,
demonstrating a neat trick). 

9.2.6.1 *MAP Authoring Template v0.1*

Note that I've simply taken and modified the v1.4 of the "Official" WAD Authoring
Template - ## any objections? 

For all of you map authors out there, here is the "Official" MAP Authoring
Template v0.1. When you release your map, please fill this form out and place it
in the information file you create about your new map. This way we'll easily be
able to compare maps.

Thanks to Steve Bareman (bareman@hope.cit.hope.edu) for creating a WAD about file
standard.

MAP Authoring Template V0.1 (Clip this line)
================================================================ Title	:
Filename	: xxxx.MAP
Author	: Your name here
Email Address	:
Misc. Author Info	:

Description	: Set the mood here.

Additional Credits to :
================================================================ 

* Play Information *

Episode and Level #	: ExMx (,ExMx,...)
Single Player	: Yes/No
Cooperative 2-8 Player : Yes/No
Deathmatch 2-8 Player : Yes/No
Difficulty Settings	: Yes/Not implemented
New Sounds	: Yes/No
New Graphics	: Yes/No
New Music	: Yes/No
New Programming	: Yes/No
Demos Replaced	: None/1/2/All

* Construction *

Base	: New level from scratch/Modified
ExMx/xxx.MAP
Editor(s) used	:
Known Bugs	:

* Where to get this map *

FTP sites:

BBS numbers:

Other:


9.3 (Future add-ons)


This section contains a list of vapour-ware :) Both software users are wishing
for and projects currently in the making are listed here.

9.3.1 (Add-on software wish list)

Attention programmers! Here is a wish list, created by the DN3D players, of
add-on software that should be made for DN3D. If you would like to make an
addition to this list, please send me E- mail.
Additionally, if you are planning on creating one of these utilities, tell me,
and I'll move it to the "Add-on software in the making" chapter.

* A DEU-like pre-editor for the rough work (to be fine-tuned 
later by BUILD.EXE). Ideally, this preeditor would be network-capable to allow
several people to work on a level simultaneously.

* A program to renumber the tiles in the TILESxxx.ART files 
(changing localtilestart and localtileend - see ARTFORM.TXT for details). This
one should be easy, but I haven't got the time for it.

* Automatic .CON file patcher to allow easy inclusion of 
.CON modifications.

* Lots of additional graphics, allowing the building of 
realistic 'normal' street and house maps. 

9.3.2 Add-on software in the making

This chapter tells about add-on software which is being currently worked on.
If you are working on something that is not in here, please send me E-mail so I
can put it in.
In this section, you can also request help on creating some add- on software.






Chapter 10

(Troubleshooting)


10.1 (Common questions)


10.1.1 (My 3D mode messes up)

A common lament.

You've forgotten that the entire \GOODIES\BUILD directory has to be copied into
your Duke3D directory. The 3D mode requires the DUKE3D.GRP or the TILESxxx.ART
files to work properly. 

10.1.2 (I'm using Windoze/Win95, and...) 

Tough luck.

Use DOS.

10.1.3 (I can't select sprites)

If you can't seem to select a sprite, there are two possible reasons:

* Two sprites are overlapping each other. 
In this case, the sprite _is_ blinking, but you aren't seeing it. Try to move the
sprite anyway. 

* You've switched the grid off.
Sprites can only be selected if a grid is shown on the screen.

10.1.4 *How do I view the original maps?* 

Extract them from the DUKE3D.GRP file:

KEXTRACT DUKE3D.GRP *.MAP

10.1.5 *How do I use the new .VOC and .MIDs?* 

If you get new .VOC and .MID files with a new level, simply copy them into your
Duke3D directory. Duke3D has a list of all sounds (VOC) and music fies (MID) in
the DEFS.CON - if it finds a file with the same name in its main directory, it
will use this one instead.

10.1.6 (How do I show the wall data?)

If lots of sprites are real close to a wall, it can be difficult showing the wall
data with [Alt]-[TAB].

Press [G] several times to turn off the grid - now you'll only be able to select
walls.

10.1.7 *I can't save the changes in BSetup* 

That's because you didn't remove the read-only attribute from your files after
copying them from the CD-ROM. Try this: 

ATTRIB -R *.*

10.1.8 *The game ends with 'MAP E1L9.MAP not found!'* 

Yes, user maps loaded via the '-map' parameter are loaded as E1L8. If you end the
level, the program automatically looks for the next level, E1L9 and dies if it
doesn't find it. 

Thus if you want to play several levels behind each other, call the others
E1L9.MAP (or E1L10/E1L11.MAP) and copy them into your Duke3d directory.

10.1.9 *How do I set the par time?*

You can't set a par time in your .map file - the times are stored in USER.CON,
line 329 ff.

We'll have to wait until somebody writes a simple .CON patcher (hint, hint).


10.2 (Bugs in the game)


The game itself contains some interesting bugs, none of them serious.

10.2.1 *Holodukes*
10.2.1.1 *Bug*

Not sure if this is a bug or not, but holodukes can be distinguished from Real
Men easily:

* They don't cast shadows.

* They don't glow in night vision.

10.2.1.2 *Workaround*

None known.
10.2.2 *The shrinker*

10.2.2.1 *Bug*

If you shrink something (a monster or a dancer) and then freeze it, it will stay
small when it thaws.

10.2.2.2 *Workaround*

Don't allow shrinkers and freezers in the same level if this bugs you.

10.2.3 *Endless ammo*

10.2.3.1 *Bug*

If you freeze, for example, a pig cop, it might drop a weapon. If you then allow
it to thaw and freeze it again (easy, because it's already severely weakened), it
might drop another weapon. Repeat until you're sick of it.

10.2.3.2 *Workaround*

None known. If you want to keep ammo away from the players (for shame!), don't
add the freezer.

10.2.4 Remote switch triggering

10.2.4.1 [Bug]

If a switch is placed on a thin wall, you can trigger it from the other side of
the wall.

10.2.4.2 [Workaround]

Place switches on thicker or even outside walls. 

10.2.5 *Underwater toilets*

10.2.5.1 *Bug*

Somebody actually had the idea of placing a toilet underwater... But when Duke
uses it, he's unable to surface again. 

10.2.5.2 *Workaround*

None - drown the bastard ;)

10.2.6 *Explosions*

10.2.6.1 *Bug*

Explosions are often clipped incorrectly, and you can see a part of a wall or
sprite overlapping it.

10.2.6.2 *Workaround*

None - this seems to be caused by the fact that the clipping for a sprite is
worked out from its midpoint - if the sprite is big and unhappily placed, the
clipping can fail. Not terribly serious, though.

10.2.7 (Crash on shattering objects)

10.2.7.1 (Bug)

If you break too many objects at the same time (I shot an RPG into a very
well-stocked bar) the game will crash. 

10.2.7.2 (Workaround)

Don't place too many breakable objects near each other while designing a map. ##
Anybody found out the limit? 32? 64? 

10.2.8 *Breaking unbreakable glass*

10.2.8.1 *Bug*

Glass marked as unbreakable can still be shattered by an explosion (bomb) nearby.

10.2.8.2 *Workaround*

None known. ##

10.2.9 *Trip mines*

10.2.9.1 *Bug*

Trip mines don't work well with mirrors or moving sectors: They don't reflect in
the mirror (looking completely wrong), and the beam breaks up in a moving sector,
creating a rather strange effect.
All this grief is because the beam is actually a collection of sprites.

10.2.9.2 *Workaround*

None known. Just don't place trip mines in such a way that the beam hits a
mirror.

10.2.10 (Phantom bullet-holes)

10.2.10.1 (Bug)

If you design a one-sided glass wall and shoot at it from the wrong side,
bullet-holes will appear in the glass. If you then shatter if from the right
side, the bullet holes will stay in mid-air.

10.2.10.2 (Workaround)

Who cares?


10.3 (Bugs in BUILD)


Like any complex CAD software, BUILD has some bugs as well. Some of them we have
to be aware of, most are just weird. 

10.3.1 Selecting long lines

10.3.1.1 Bug

If a line is too long, you can't select it anymore by moving the cursor near it.
Thus you also can't insert new points on it, for example.

10.3.1.2 Workaround

Keep the lines short by inserting points on too long olines: shorten the line,
insert a point, lengthen the line again, move the newly inserted point into the
middle of the line. 

10.3.2 (Splitting a sector)

10.3.2.1 (Bug)

Splitting a sector containing another sector (like a door) is often a bad idea.
I've had lots of sectors disappear on me already.

10.3.2.2 (Workaround)

None known so far. Save your work first. 

10.3.3 (Selecting sprites)

10.3.3.1 (Bug)

If several sprites are exactly over each other, they don't start to flicker as
they are selected.

10.3.3.2 (Workaround)

Be aware of this, try to move the sprite anyway. 

10.3.4 [Autoaligning textures]

10.3.4.1 [Bug]

When pressing [.] in 3D mode to autoalign textures, the system hangs at times.

10.3.4.2 [Workaround]

I don't know of any workaround to this.
Save before your press [.], and don't use it needlessly. 

10.3.5 (Displaying memory info)

10.3.5.1 (Bug)

When pressing [']-[M] to display the memory info, the system will be unstable,
crashing when returning to 3D mode. 

10.3.5.2 (Workaround)

None known. Don't use this function, you don't need it anyway. 

10.3.6 (Function keys in 3D mode)

10.3.6.1 (Bug)

In 3D mode, the function keys [F5], F[6], F[7] and F[8] evidentially try to
display the same help screens as they do in 2D, messing up the graphics in the
process. 

10.3.6.2 (Workaround)

Simply press [NumEnter] twice to jump to 2D mode and straight back into 3D.

10.3.7 *Deleting sectors*

10.3.7.1 *Bug*

You can run into LOTS of trouble when deleting sectors. 

10.3.7.2 *Workaround*

Here are some general tips on deleting sectors: 

* Remove all sprites (including sector tags, etc) from the 
sector before deleting it.

* Don't delete a sector by collapsing it (moving all points 
over each other).

* To delete a two-sided sector, join it with the sector 
around it.

10.3.8 *Copying sectors*

10.3.8.1 *Bug*

Copying sectors doesn't work properly - the copied sectors can't be inserted into
existing sectors (the lines turn one-sided). 

10.3.8.2 *Workaround*

None known so far - it seems to be far easier to build things several times over
than to copy them.

It _must_ be possible, though: I just can't believe that E3L10 (Tier Drops) was
built on-site. And E3L1 shows part of E3L2, obviously copied.

10.3.9 *FPU reliance*

10.3.9.1 *Bug*

It would seem that BUILD runs somewhat unstable on a system without an FPU (like
an 486SX).
This is not a terribly serious bug IMO, as most people are using 486DXs or
Pentium CPUs these days.

10.3.9.2 *Workaround*

Download a good emulator. ## Anybody know any exact ftp locations?

10.4 *BUILD wishlist*


Here's a wishlist for features in BUILD - most of them are pretty simple and
could be fixed with a simple patch (hint, hint). If some hero out there decides
to create a BUILD replacement, please keep these in mind :)

* Fix the bugs mentioned above.
Especially the one about copying sectors. 

* Auto-repeat the '[' and ']' keys in 3D mode. 
It's real irritating to press these buttons 101 times to get the tilt just right.

* Reach normal player height in float mode at the touch of a 
button.
I often find myself switching to Game Mode just to set the height above ground
correctly.

* Center view button.
If case you've looked up and down and now need to see the world as the player
will.

* User-buildable help screens.
These would allow you to create your own help screens. 

* Allow us to change sprite numbers in 2D mode. 

* Control the grid spacing via the number keys on the top of 
the keyboard.

* Have a Grid on/off toggle key.
It's irritating switching through the grid resolutions all the time.

* Allow us to scale selected sectors.

* Allow circle drawing via midpoint and radius selection 
(creating a new sector).

* Allow us to tag several objects to change at the same 
time.

* Allow us to set most values directly.
This especially applies to the Wall->Sector pointers, but is also good for flags,
room heights, etc. 

* 3D option to copy a sprite with _all_ settings (tags, 
shade, scale, height...everything).






Chapter 11

[Reference lists]


This chapter contains useful reference material which you might even want to
print out and keep handy while designing levels. 

11.1 *List of original levels*


I very very often refere to the original levels ("Now just how did they achieve
this neat effect?") but don't know the names and level numbers by heart.
More info (like par times, etc) can be found in USER.CON, line 325ff).

11.1.1 L.A. Meltdown

E1L1	Hollywood Holocaust

E1L2	Red Light District

E1L3	Death Row

E1L4	Toxic Dump

E1L5	The Abyss

E1L6	Launch Facility (secret)

E1L7	Faces Of Death (multiplayer)

E1L8	User Map (if your map isn't named ExL2.MAP, this
is where it'll end up)

E1L9	Multiplayer 3 (like User Map)

E1L10	Multiplayer 4 (like User Map)

E1L11	Multiplayer 5 (like User Map)

11.1.2 Lunar Apocalypse

E2L1	Spaceport

E2L2	Incubator

E2L3	Warp Factor

E2L4	Fusion Station

E2L5	Occupied Territory

E2L6	Tiberius Station

E2L7	Lunar Reactor

E2L8	Dark Side

E2L9	Overlord

E2L10	Spin Cycle (secret)

E2L11	Lunatic Fringe (secret)

11.1.3 Shrapnel City

E3L1	Raw Meat

E3L2	Bank Roll

E3L3	Flood Zone

E3L4	L.A. Rumble

E3L5	Movie Set

E3L6	Rabid Transit

E3L7	Fahrenheit

E3L8	Hotel Hell

E3L9	Stadium

E3L10	Tier Drops (secret)

E3L11	Freeway


11.2 (List of tiles)


This section contains a list of all tiles in the game, sometimes with a short
explanation.

A number like x,y or x..z denotes an animation sequence. 

11.2.1 (Control tiles)

0	Ugly wall texture
Default texture when creating new maps - is used as a marker to tell you to fix
the textures. 

1	Sector Effector
Is invisible at game time, and is used to manipulate sectors and cause all kinds
of special effects. Is usually placed inside the sector to effect. See list
further on.

2	Activator
Invisible at game time, use together with switches or touchplates to activate
sector effectors in the same sector.

3	Touchplate
Invisible at game time, it triggers an activator or masterswitch when a player
enters the sector the touchplate is in.

4	ActivatorLocked
Invisible at game time. It can be used to toggle a sectortag effect (meaning you
can, for example, toggle the underwater flag of a sector by pressing a switch).

5	MusicAndSFX
Invisible at game time, it handles music and sound play.

6	Locator
Invisible at game time, it's used to define movement paths.

7	Cycler
Invisible at game time, it pulses the light level in a sector.

8	MasterSwitch
Invisible at game time. Triggered by a touchplate, it activates the sectortag
function or a sector effector.

9	Respawn
Invisible at runtime, it teleports in sprites when triggered by a touchplate.

10	GPSpeed
Invisible at runtime, it sets movement speeds (for example, speed of closing
doors).

11.2.2 (Weapon sprites)

21	The pistol.

22	The chaingun.

23	The RPG launcher.

24	The freezer.

25	The shrinker.

26	The pipebomb.

27	The tripbomb.

28	The shotgun.

29	The devastator.

11.2.3 (Ammo sprites)

37..39	Freezer ammo.

40	Pistol ammo.

41	Chaingun ammo.

42	Devastator ammo.

44	RPG ammo.

46	Shrinker ammo.

47	Box of pipebombs.

49	Shotgun ammo.

11.2.4 (Item sprites)

51	Small medkit.

52	Large medkit.

53	Portable medkit.

54	Armor.

55	Steroids.

56	Scuba gear.

57	Jetpack.

58	Spacesuit.
This was evidentially planned as an item, but now we can just use it as
decoration.

59	Night vision goggles.

60	Access card.
Change the palette to set the cards color. 

61	Protective boots.

100..115 Atomic health.

11.2.5 (Special sprites)

513	Bridge sprite
Used to create a walkable bridge like in E1L1 near the exit.

11.2.6 (Parallax (sky) textures)

Note that parallaxed space textures will make the relevant sector lethal to the
player.

80,82,83	Moon surface.
Can also be used as plain wall texture.

81	Moon surface with earth.
Can also be used as plain wall texture.

84	Stars.
Can also be used as plain wall texture.

85..87	Earth from space.
Can also be used as plain wall texture.

88	Bright star with moon.
Can also be used as plain wall texture.

89	Dark city scape.

90	Dark city scape, red windows.

91	City scape, lots of lit windows.

92	City scape with advertising (?) sign.

93	Just like 90.
(Anybody know why? ##)

94	Solid red color.

95	Stars, like those over a desert.

96	City scape with many many lit windows.
This texture seems messed up - some pink stripes are seen.

11.2.7 *Lights*

120	Vertical oval technical light, shootable.

121	Broken version of 120.

122	Horizontal oval technical light, shootable.

123	Broken version of 122.

124	Horizontal rectangular light (two neo tubes),
shootable.

125	Shot version of 124.

126	Square technical light in four sectors.

127	Wavy technical light.

128	Rectangual technical light, consisting of 3 lamps.

225	Long narrow blue light (up/down), used in windows
of space station.

229	Like 225, but left/right.

11.2.8 (Switches)

130	Locked access switch (requiring card).

131	Open access switch.

132,133	Horizontal slot switch.

134,135	Vertical slot switch.

136,137	Rotating switch.

138,129	90 degree switch.

140,141	Massive power switch.

142..145	Endlevel switch with animation.

146..149	Multiswitch.

161,163	Red button switch.

164,165	Flat square switch.

166,167	Rotating lit switch.

168,169	Circular lit switch.

170,171	Access switch

11.2.9 (Doors)

Doors consisting of two tiles are usually splitting doors. 

11.2.9.1 *Technical doors*

150	Rising door with red panel.

151	Door side wall, fits 150.

152,153	Dark door, light row at top and bottom.

154,155	Door with circular pattern.

156	Modern dark blue door.
Nice multipurpose tile.

157	Sliding door with nuke pattern on it.

158	Solid metal door with cross on it.

159	Narrow steel door with blue grip.

226	Locker door with space logo on it.

227	Locker door like 226, but plain.

242	Standard rising door with yellow/black tracks and
cross-pattern.

243	Garage door in poor condition, good wall texture
as well.

11.2.9.2 *Normal*

245	Light hotel door with small label.

11.2.10 *Floors*

Most of these tiles can be used for walls as well, of course. 

181	Smooth modern stone with circle pattern on it.

182	Dark gray tile.
Useful for kitchen walls.

183	Dark gray tile with grid pattern.

184	Gray modern lined, looks like columns behind bars.

191	Scruffy ractangular tiles.

200..202	Animated green slime.

210	Many light ovals on dark background. Can probably
be usefully resized.

211	Patterned square stone tiles (gray).

216	Square gray stone tile.

220	Square gray stone tile with rounded edges.

228	Square metal tiles with thin dark border.

11.2.11 *Walls*

While these textures can be creatively used for anything, they sure look like
walls to me.

11.2.11.1 *Machines*

185	Four gray machines with an indirect light above
them.

186..190	Green pipes on tiles.
Use 191 for same background without the pipes. 

192	Like the tiles from 186, but lit by a single lamp.

222	Technical panel in green machine.

247	Fuse panel (?) set in gray wall. Fits 251.

11.2.11.2 *Space ship hull*

233	Light tech wall with green stripe.

234	Manoeuvre thrusters.

235	Solar panels.

236	Triangular pattern.

237	Thick stripe.

248	More hull.

11.2.11.3 *Modern*

204	Dark rounded edge on light gray, use with 205.

205	Two parallel dark stripes on light gray, use with
204 to create a special wall/door/sign.

207	Gray technical-looking wall with patterned stripe.

209	Similar to 207, but without the stripe.

212..215	Similar to 209.

217	Gray technical wall with two baby-blue (!) stripes
on it.

223	Dark blue wall with metal rivets and light pipes
lenghtwise.

224	Barred panel (?) for wall 223.

246	Light wall with embossed arrow pattern.

249,250	Like 246, but overgrown with slime.

251	Light wall with blue strip, lit from small lamps.
Fits 247.

252	Like 251, but without the lamps.

11.2.11.4 *Metal*

193	Black metal, lit from the upper right.

194	Narrow metal strips, belonging to 193.

244	Dark corrugated metal, lit from lamp above.

11.2.11.5 *Concrete*

195	Heavy concrete, like inside of factory.

196	Reinforced concrete, fits to 195.

197	Reinforced concrete with lights, fits to 195.

254	Long thin heavy-looking concrete with lichens.

11.2.11.6 *Stone*

231	Heavy tiled dark stone, with lichen on it.

232	Similar to 232, but patterned.

241	Smooth white stone (marble?).

11.2.11.7 *Rock*

238	Light rock with vertical dark fissures.

239	Light rock with stones in it, fits 238.

240	Irregular gray rock, could be used as blasted
stone.

11.2.12 *Technical-looking items*

11,12	The floating demo recording camera.

203	Computer module with chips on it.

160	Steel pistons with green slime.

11.2.13 *Often-used special textures*

70	Broken mirror.
This texture is set automatically when a mirror is broken.

161	Dark door tracks.

198	Milk glass.

852	Broken concrete
Typically used inside blasted holes or damaged walls.

11.2.14 (Diverse)

20	A hollow frame, used in the status bar of the
game.

30	The health box from the status bar.

31	The ammo box from the status bar.

33	The inventory box from the status bar.

218	Long thin gray metal plate with a rivet in the
top.
219	Tree trunk.

221	Metal cover with space logo embossed on it.

11.2.15 *Unclassified (please assist!)*

62	Small red sphere.

63	Small yellow sphere.

64	Small green sphere.

199	Solid light blue.

206	Wall edge?

208	Wall edge? (similar to 206).

230	Very small blue tile, called BIGFORCE. Force
field? Causes plenty of moire patterns in BUILD. 

253	Long thin texture, door track?


11.3 *List of Palettes*


Textures and sprites can be set to their own palette via [Alt]-[P]. The palette
info (together with distance shading and translucence effects) is stored in
PALETTE.DAT. 

Here's a list of all useful palettes found so far: 

0	Default
The standard palette. Used on a key, it defines a blue keycard.

1	Blue
A sprite with this palette will only appear in multi-player mode.

2	Red

3	Normal
Use this on the floor or ceiling to create non- attacking vehicles under
parallaxed skies. 

4	Special
Makes sprites solid black - usful for turning forcefields invisible, for example.

6	Night-vision

7	Yellow

8	Green
Changes water to green slime.

10	Red clothing

11	Light green clothing

12	Light gray clothing

13	Dark grey clothing

14	Dark green clothing.
Set the nukebutton palette to 14 to have it show up in the proper 'secret level
button' color. 

15	Brown clothing.

16	Dark blue clothing.

17	Blue skin, green clothes.
Nice trooper palette - gives them a blue, alien skin.

18	Light gray clothing.

19	Red skin, grey clothes.

20	Blue skin, grey clothes.

21	Red card
Defines a red keycard. Causes red clothes, too. A miniboss is created by setting
a BOSS1 to this palette.

22	LIght gray clothes.

23	Yellow card
Defines a yellow keycard.

24	Nice trooper palette - gives them a red and blue
uniform.

25	Turns accessories red (like money from a
stripper).

26+	Seems to cause trouble, sometimes the sprite can't be changed back.


11.4 {List of Sector Effectors}


This section will explain all sector effectors in detail. 


11.5 {List of sounds}


This section will list all sounds, together with info whether they can be used as
ambient sounds.


11.6 *Dimensions*


Here are some facts on the dimensions of Dukes world. Keep in mind, though, that
you'll want to scale down real-world places to make them faster and
better-looking in Duke. 

11.6.1 (Units)

All (x,y,z) coordinates are in units; irritatingly, it seems that the (x,y) units
are different to the (z) units. At a rough estimate, I would say that 16 (z)
units = 1 (x,y) unit.

2 (x,y) units = 1 pixel (normal texture) 8 (x,y) units = 1 pixel (shrunk using
[E]) 128 (z) units = 1 pixel (normal texture) 

Floors are raised by 1024 units every time [PgUp] or [PgDn] is pressed.

Viewing Duke via [F7] in a narrow corridor, I would estimate 1024 units to be
about 2.6m in the real world (meaning 1m is roughly 400 units).
If I remember the weirdo US units correctly, 1 foot would be about 128 units.

11.6.2 (The map)

Maximum grid width is 1024 units.

In the following paragraphs, height values are shown as z- coordinate difference,
with the number of [PgUp]-keypresses in square brackets behind it:

11.6.2.1 (Walking about)

3072 [3]	Max. height difference for stairs.

6144 [6]	Min. sector height to enter while ducked.

10240 [10]	Min. sector height to enter (will duck
automatically for 10).

16384 [16]	Height of standard sector created.

20480 [20]	Max. jumpable height.

11.6.2.2 (Weapons)

Numbers in brackets mean that only some of the shots will make it.

3072 [4096] (3 [4])
Max. height of floor to shoot over while ducked. 

4096 (4)	Min. height to place tripbomb on when ducked.

5192 [4096] (5 [4])
Max. height of ceiling to shoot under while ducked.

6144 (6)	Max. height of ceiling to shoot RPG under while
ducked.

8192 [9216] (8 [9])
Max. height of floor to shoot over while standing. 

10240 [9216] (10 [9])
Max. height of ceiling to shoot under while standing.

1024 (10)	Min. height to place tripbomb on when standing.

11264 (11)	Max. height of ceiling to shoot RPG under while
standing.






Chapter 12

Miscellaneous


12.1 *MAP design contest*


Joseph G. Geisler III is holding a MAP design contest - he's setting up an HTML
page (adress so far unknown to me) with MAP ratings (good idea, _I_ wanted to do
that! :). So send your maps to him at dubljay@baltimore.net, you might even win
something (keyrings, T-shirts).

His announcement was dated 6th Jun 1996, so don't be surprised if he got swamped
and stopped his offer :)


12.2 [Conclusion]


Phew! Well, that is all I have! I hope this FAQ proves to provide a good resource
for DN3D Editing information. If you have any suggestions, questions, additions,
or comments for the FAQ, send me e-mail at "sz0759@rzmail.uni-erlangen.de". 

Thanks for reading the FAQ! -Klaus Breuer 

SUPPORT YOUR SHAREWARE COMPANIES! REGISTER YOUR SHAREWARE! 


12.3 (Revision history)


v0.1	First release of the DN3D EDITING FAQ as an RFC.
(16. May 1996)

v0.2	RFC II, added how-tos and changed the format a
bit. (20. May 1996)

v0.3	RFC III, added more how-tos, extended reference
list. Released to the mailing list only. (24. May 1996)

v0.4	First non-RFC release, added lots of info,
including a beginners tutorial and BUILD reference. Plenty of typos fixed. (25.
May 1996) 

v1.0	First 'real' release of the FAQ. Lots more info,
including thoughts on level design and more how- tos. Plenty of errors removed,
first version of Museum included.                                  l  l   2 DoorWay     ڭTFt  10.txt   TEXT????           TEXT????                               r V5                         
  Duket    H GR<K     9 by V8  b                 hR*chP ( x  q q  V  	  Monaco                                                          /N    / Hmp / NA+HHmBgBg?< ?< ;| YO/N    / Hmp / NA+HHmBgBg?< ?< ;|   	  Monaco                                                                                                                            l  l   2 1_    2  BBSR   
P     1\@                                                                                                  